Facebook - 使用access_token检查应用程序的权限

时间:2013-12-14 23:48:33

标签: php facebook facebook-graph-api permissions

即使他处于离线状态,我也必须开发一个可以发布到用户墙上的应用。一切都已实施,并且有效。问题是,如果用户只是删除了帖子的访问权限,那么应用程序就不会收到任何通知,因此我无法更新,如果用户已删除访问权限,我尝试使用/ me / feed和他的access_token从他的帐户发布,而不是只是失败发布和继续它只是崩溃,因此其他用户的帖子也没有更新。

我正在尝试检查权限,但这也无效。如果我直接点击URL,它可以正常工作

  

https://graph.facebook.com/userID/permissions?access_token=123

但是当我尝试使用php做同样的事情时它根本不起作用或返回空结果。我试过以下帖子:

$response = $facebook->api("/$userId/permissions?access_token=$accessToken");

以及

$params1 = array(); 
$params1['access_token'] = $accessToken;
$response = $facebook->api("/$userId/permissions", 'POST', $params1);

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

首先,我想在这里暗示一下,你使用过:

$facebook->setAccessToken($myToken);

因为这会导致Facebook在您使用

后发送重复变量(参数)

$facebook->api("/$userId/permissions?access_token=$accessToken");

此外,您可以使用:

$permissions = $facebook->api("/me/permissions");
if( array_key_exists('publish_stream', $permissions['data'][0]) ) {
    // Permission is granted!
    // Do the related task
    $post_id = $facebook->api('/me/feed', 'post', array('message'=>'Hello World!'));
} else {
    // We don't have the permission
    // Alert the user or ask for the permission!
    header( "Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream")) );
}

来源:

How to: Check if User Has Certian Permission – Facebook API