Facebook API:轮询来自页面访问令牌的可用权限

时间:2013-04-30 16:31:32

标签: facebook facebook-graph-api permissions

鉴于页面访问令牌,我如何轮询Facebook的API以确定我的应用程序是否仍然可以在页面的时间轴上发布?如果我在用户的上下文中工作,这将很容易。我会使用用户访问令牌并调用此端点:

/me/permissions?access_token={user_access_token}

{
  "data":[{
    "installed":1,
    "email":1,
    "publish_stream":1, // Yay! I can still publish to user's Timeline
    "bookmarked":1
  }]
}

但是,页面访问令牌不允许使用/ me / permissions端点:

/me/permissions?access_token={page_access_token}
{
  "error":{
    "message":"(#3) App must be on whitelist",
    "type":"OAuthException",
    "code":3
  }
}

如果我有用户的访问令牌,那么我可以同时检查 publish_stream manage_pages ,如果用户已授予这两种权限,那么我的应用可以发布到用户是其管理员的任何页面。但不幸的是,在我的场景中,我没有用户访问令牌。我只有页面访问令牌,它存储起来供离线使用。

知道如何使用页面访问令牌来确定我的应用程序是否仍然可以发布到Page的时间轴吗?

2 个答案:

答案 0 :(得分:3)

您可以使用debug tool检查与其相关的信息。

引自documentation

  

要使用API​​,您可以使用两个参数向graph.facebook.com/debug_token发出HTTP GET请求:

     

https://graph.facebook.com/debug_token?input_token=INPUT_TOKEN&access_token=ACCESS_TOKEN

     

input_token:要调试的访问令牌
  access_token:您的应用访问令牌或来自应用开发者的有效用户访问令牌。

答案 1 :(得分:0)

仅使用页面访问令牌无法查看页面访问令牌权限。

访问/ debug_token /,或使用页面访问令牌上的Facebook调试器(https://developers.facebook.com/tools/debug/)将只返回发出它的用户令牌的权限(从2014年5月7日开始测试)。

检查页面令牌权限的唯一方法是轮询/ me / accounts /(这需要来自页面管理员的用户令牌)并查看' perms'领域。或者只是测试请求。

验证' manage_pages'和' stream_publish'从/ debug_token /返回的页面令牌是一个不充分的检查,因为用户的页面管理员级别可能会限制他们的活动。