检索Facebook页面所有者/管理员的配置文件ID

时间:2011-10-20 19:40:17

标签: facebook facebook-graph-api

在以前版本的PHP SDK中,应用程序能够获取拥有安装应用程序页面的用户的个人资料ID。

$facebook->get_profile_user()

在没有最终用户授权访问Facebook App的情况下,这是可能的。

但是我在新的JS或Graph API中找不到类似的东西。我能找到的最接近的是https://graph.facebook.com/<page_id>/admins,但是看起来这个调用不起作用,或者需要额外的权限:

Access Token:AAADF5PRI7BkBAKSz9Wqfbkuib6JH7WkZCQDZBgLNO10s1ZAMKF7BO7Y3YCVqkYNuCJ9QroWHYYn8n5wC8diPuBDPGsNUS5tDnZAZA6rFSx28VtpvVhUlY
Graph API: /210093142392039/admins
$this->facebook->api('/291231207559006/admins')

( ! ) Fatal error: Uncaught OAuthException: (#210) Subject must be a page. thrown in /html/classes/facebook/base_facebook.php on line 1033

这个功能消失了吗?我们使用配置文件ID作为数据源中的密钥,因此保持相同的密钥是理想的,如果不是,我们可以开始存储页面ID,但是用户必须重新初始化应用程序。

2 个答案:

答案 0 :(得分:1)

2011年9月22日之后,需要manage_pages权限才能执行此操作。 您必须请求manage_pages权限,获取页面access_token,然后使用页面access_token发出管理员请求。

请参阅http://developers.facebook.com/docs/reference/api/permissions/了解更新的权限。

答案 1 :(得分:1)

好吧,我实际上有一段时间遇到了同样的问题并找到了解决方案。我正在做的是传递页面访问令牌的用户访问令牌intead。我建议您尝试使用

之类的东西
$pageIds=$facebook->api('/me/accounts');
$pageAccessToken=$pageIds["data"][1]["access_token"]; //get the access token for page "[1]" over here  

然后尝试

facebook->api('/<page id>/admins', 'get' , array("access_token" => $pageAccessToken));