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

时间:2010-09-30 10:28:35

标签: php facebook sdk

我正在开发一个小型的Facebook应用程序,但在能够授予扩展权限方面存在问题,我想授予以下权限:

read_stream& publish_stream& offline_access

但是我想在不使用FBML的情况下这样做,任何想法如何使用git hub上的新PHP SDK来实现这一点:link(http://github.com/facebook/php-sdk/raw/master/src /facebook.php)

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

有人知道这是否可行?

1 个答案:

答案 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);