在 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