使用其他查询参数时,Instagram重定向URI与原始重定向URI不匹配

时间:2013-02-22 23:48:16

标签: php wordpress oauth instagram

我正在为WordPress制作插件,用户点击“登录Instagram”按钮授权我的Instagram应用。授权后,插件基本上只会从用户那里获取最新的Instagram照片并通过小部件显示。

以下是我的插件如何工作的一步一步:

  1. 用户点击WordPress设置页面上的“在Instagram上登录”。
  2. 用户将被带到 Instagram的授权屏幕(登录屏幕)
  3. 用户成功验证并批准了我的应用。
  4. Instagram会将用户重定向到我的重定向URI
  5. 文件“instagram-api-redirect.php”将获得“code”和“return_uri”参数。其中“代码”用于请求“访问令牌”。
  6. 它会将“访问令牌”重定向回WordPress设置页面。
  7. 该插件将“访问令牌”存储到数据库,用于验证请求。
  8. 我遇到的问题是我在步骤5收到错误消息“”Redirect URI与原始重定向URI“不匹配。当我删除”return_uri时,它正常工作“来自<​​strong>重定向URI 的查询参数。

    一些细节可能会有所帮助:

    以下是我的应用中的重定向URI

      

    http:// mysite.com/plugins/pulp_instagram/instagram-api-redirect.php

    以下是我发送给Instagram “/ authorize”重定向URI

      

    http:// mysite.com/plugins/pulp_instagram/instagram-api-redirect.php?return_uri=http:// localhost / instagram-app

    以下是我发送给Instagram的完整授权网址“/ authorize”

      

    https:// api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=http:// mysite.com/plugins/pulp_instagram/instagram-api-redirect.php?return_uri=http: // localhost / instagram-app&amp; response_type = code

    以下是网址回复:

      

    http:// mysite.com/plugins/pulp_instagram/instagram-api-redirect.php?return_uri=http:// localhost / instagram-app&amp; code = 557d15dacd0d40459edf70aa159476de

    这是“instagram-api-redirect.php”文件的完整代码:

    <?php 
    
    // the redirect uri
    $return_uri = $_GET['return_uri'];
    
    require 'instagram.class.php';
    
    // Initialize class
    $instagram = new Instagram(array(
      'apiKey'      => 'CLIENT-ID',
      'apiSecret'   => 'CLIENT-SECRET',
      'apiCallback' => 'http://mysite.com/plugins/pulp_instagram/instagram-api-redirect.php'
    ));
    
    // Receive OAuth code parameter
    $code = $_GET['code'];
    
    // Check whether the user has granted access
    if (true === isset($code)) {
    
        // Receive OAuth token object
        $data = $instagram->getOAuthToken($code);
        print_r($data); 
    } else {
    
      // Check whether an error occurred
      if (true === isset($_GET['error'])) {
        echo 'An error occurred: '.$_GET['error_description'];
      }
    
    }
    ?>
    

    另外,我正在使用cosenary中的“Instagram PHP API”类(instagram.class.php)。

    提前致谢!

0 个答案:

没有答案