在 PHP 中使用 Facebook API 授予 publish_stream 权限

Posted

技术标签:

【中文标题】在 PHP 中使用 Facebook API 授予 publish_stream 权限【英文标题】:Granting publish_stream permission using Facebook API in PHP 【发布时间】:2010-09-30 10:28:35 【问题描述】:

我正在开发一个小型 facebook 应用程序,但无法授予扩展权限,我想授予以下权限:

read_stream & publish_stream & offline_access

但是我想在不使用 FBML 的情况下执行此操作,任何想法如何使用 git hub 上的新 php SDK 执行此操作:链接 (http://github.com/facebook/php-sdk/raw/master/src /facebook.php)

我希望能够同时登录并授予这些权限。

有人知道这是否可能吗?

【问题讨论】:

【参考方案1】:

甚至不需要 SDK。这几乎是来自https://developers.facebook.com/docs/authentication/ 的复制粘贴,并进行了一些调整(当第一次未设置 $_REQUEST["code"] 时,他们的代码为我触发了 PHP 错误),并且添加到初始身份验证请求的适当权限。

$app_id = 'YOUR_APP_ID';
$app_secret = "YOUR_APP_SECRET";
$my_url = "TARGET_URL_ONCE_PERMISSION_IS_GIVEN";

$code = isset($_REQUEST["code"] ) ? $_REQUEST["code"] : false;


if(!$code) 
    $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&scope=publish_stream,offline_access&redirect_uri=" . urlencode($my_url);
    echo("<script> top.location.href='" . $dialog_url . "'</script>");


$token_url = "https://graph.facebook.com/oauth/access_token?client_id="
    . $app_id . "&redirect_uri=" . urlencode($my_url) . "&client_secret="
    . $app_secret . "&code=" . $code;

$access_token = file_get_contents($token_url);

$graph_url = "https://graph.facebook.com/me?" . $access_token;

$user = json_decode(file_get_contents($graph_url));

echo("Hello " . $user->name);

【讨论】:

以上是关于在 PHP 中使用 Facebook API 授予 publish_stream 权限的主要内容,如果未能解决你的问题,请参考以下文章

升级图 API 2.0 后从 Facebook 读取新闻提要失败

使用 cURL PHP / Graph API 在 Facebook 中回复评论

如何在 Facebook API for iOS 中重新请求某些访问令牌

使用 php api 从 facebook 获取用户名和 id

尝试使用 Graph API (Facebook C# SDK) 更新 Facebook 事件

facebook 聊天 api - php