在以前版本的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,但是用户必须重新初始化应用程序。
答案 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));