我正在开发一个小型的Facebook应用程序,但在能够授予扩展权限方面存在问题,我想授予以下权限:
read_stream& publish_stream& offline_access
但是我想在不使用FBML的情况下这样做,任何想法如何使用git hub上的新PHP SDK来实现这一点:link(http://github.com/facebook/php-sdk/raw/master/src /facebook.php)
我希望能够同时登录并授予这些权限。
有人知道这是否可行?
答案 0 :(得分:0)
甚至不需要SDK。这几乎是来自https://developers.facebook.com/docs/authentication/的copy'n'paste,有一些调整(当第一遍没有设置$ _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);