【问题标题】:Facebook PHP API "user hasn't authorized the application”Facebook PHP API“用户尚未授权该应用程序”
【发布时间】:2013-10-08 08:08:03
【问题描述】:

Asking for permission using new PHP SDK (3.X.X) 也有类似的问题,但没有解决我的问题。

我的应用程序是一个 Facebook 选项卡应用程序(论坛),它授权 FB 用户能够在论坛中发帖。到现在为止还挺好。授权工作正常。现在我想扩展一点我的应用程序,以便订阅线程的用户,该应用程序能够在他们的时间线上发布。

我正在尝试的测试是:

    require_once('./includes/facebook.php');
$facebook = new Facebook(array(
    'appId'  => $CFG["appid"],
    'secret' => $CFG["appsecret"],
    'oauth' => true,
    'scope' => 'status_update,publish_stream,publish_actions',
    'cookie' => true
));
$facebookid = '';
$facebookid = $facebook->getUser();
if (!empty($facebookid))
{
    $facebook_info = array();
    $facebook_info=$facebook->api('/me');
    $facebook->api('/me/feed', 'POST',
                                array(
                                  'link' => 'www.example.com',
                                  'message' => 'Posting with the PHP SDK!'
                             ));

}

但这给出了错误:致命错误:未捕获的 OAuthException:(#200)用户尚未授权应用程序执行此操作在 /home/facebook/public_html/demo/forum/includes/base_facebook.php 中抛出在线第1271章

知道我做错了什么吗?请注意,我尝试在应用程序设置 (developers.facebook.com) 中添加相同的权限,但我还是没有运气。我肯定错过了什么,但这是什么?

谢谢

【问题讨论】:

  • 您是否已经将用户重定向到 facebook,以便他们可以接受授予您的应用的权限?
  • 将您的代码包装在 try {}catch(Exception $e){}
  • scope不是SDK初始化的参数,是登录流程的参数。如果您不知道这些东西是如何工作的,请在文档中阅读它。

标签: php facebook facebook-graph-api


【解决方案1】:

base_facebook.php 以及您正在使用的代码让我觉得您正在使用 Facebook PHP-SDK 库。 publish_streampublish_actions 现在是同一个东西,所以你可以跳过它。 status_update我没见过。要发布状态,您只需要publish_actions。 确保您使用的是更新的库(他们会不时更新),可以在 github 上下载。那个库给了我一个类似的错误,我无法弄清楚原因,所以我编写了自己的身份验证过程,这并不复杂。 现在,我想到的只是你必须检查你要求的权限,检查用户是否授权了应用程序(该库使用getUser();),并检查你是否拥有最新版本的库. 如果一切都出错,请尝试使用简单的 auth url 并通过打印从 API 获得的内容进行调试。此外,请尝试确保回调 url 始终相同。 我希望这会有所帮助...

【讨论】:

    猜你喜欢
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多