【问题标题】:How to solve 'This method must be called with an app access_token' error?如何解决“必须使用 app access_token 调用此方法”错误?
【发布时间】:2011-12-11 04:25:59
【问题描述】:

我正在我的测试应用上测试分数 api。

所以...我已经使用以下权限为我的应用添加了权限。

publish_stream,
publish_actions,
user_status,
user_photos

登录后,我在 PHP 中请求以下 api

$loggedUser = $Facebook->getUser();
$scoreUpdate = $Facebook->api('/'.$loggedUser."/scores", 'post', array('score'=> 100));

我收到以下错误。

此方法必须使用应用访问令牌调用

所以我检查了 sdk 发送到 facebook 的内容,并确认它正在发送“access_token”以及我的参数。

这种情况有什么问题?

【问题讨论】:

    标签: php facebook facebook-graph-api graph


    【解决方案1】:

    app access_token 你可以简单的把它改成这样:

    $facebook->api('/me/scores', 'POST', array( 'score' => 100, 'access_token' => $facebook->getAppId().'|'.$facebook->getApiSecret() ));

    【讨论】:

      【解决方案2】:

      现在有两个令牌,一个用户令牌...和一个Application token。你需要后者。

      现在 PHP-SDK 将添加用户 access_token,如果它找到一个 我认为你的情况。建议你阅读官方脸书how-to for publishing scores

      示例取自我的tutorial

      $APPLICATION_ID = "APP_ID";
      $APPLICATION_SECRET = "APP_SECRET";
      
      $token_url =    "https://graph.facebook.com/oauth/access_token?" .
                      "client_id=" . $APPLICATION_ID .
                      "&client_secret=" . $APPLICATION_SECRET .
                      "&grant_type=client_credentials";
      $app_token = file_get_contents($token_url);
      

      【讨论】:

      • // 啊..是的!这就是问题所在。是否可以使用 facebook php sdk 获取应用程序令牌? stackoverflow 正在以某种方式删除@ifaour...
      • 好吧,我不确定是否授予manage_pages,然后调用me/accounts 和获取应用程序access_token 是否相同,但这将是很多工作。你最后一句话是什么意思?
      • // 感谢您的回答。啊...忽略我的最后一句话...我使用了“@ifaour”,但 stackoverflow 不断从我的评论中删除它。
      • 顺便说一句..你的网站很有帮助。
      • @Moon 谢谢!很快就会有很多变化和教程!
      【解决方案3】:
      $ret_obj = $fb->api( '/' . $fb->getUser() . '/scores', 'POST', array(
          'score' =>  100,
          'access_token' => $fb->getAppId().'|'.$fb->getApiSecret()
      ));
      

      如果你在access_token参数中指定了app访问令牌,你最终会失去使用/me的能力,所以你必须具体的用户ID。否则,您会收到此错误:“OAuthException:必须使用活动访问令牌来查询有关当前用户的信息”,如下所述:facebook Uncaught OAuthException: An active access token must be used to query information about the current user

      【讨论】:

        猜你喜欢
        • 2012-04-06
        • 1970-01-01
        • 2020-02-20
        • 2012-11-22
        • 1970-01-01
        • 1970-01-01
        • 2019-09-06
        • 1970-01-01
        • 2021-04-11
        相关资源
        最近更新 更多