我们遇到了大麻烦请帮帮忙。
当群组开放时,我们可以阅读JSON Feed,但是当群组隐私设置为“已关闭”时,我们无法读取它,并且我们无法将群组恢复为“打开”。我们现在正在做的是
$facebook = new Facebook(
array(
'appId' => '',
'secret' => '',
)
);
$t= $facebook->getAccessToken();
$gid = "233395776824135"; # some group id
$data = curl_get("https://graph.facebook.com/$gid/feed?limit=20&access_token=$t");
curl_get is a function that reads using curl
现在返回给我们的数据只是(所有时间) {“data”:[]}
我们需要对oAuth的“getAccessToken”函数设置user_groups权限吗?如果是,我们怎么做?
以下页面告诉您,如果组已关闭,则需要user_groups权限 https://developers.facebook.com/docs/reference/api/group/
请帮忙!感谢
答案 0 :(得分:0)
Facebook上有不同的访问令牌。对于公共组,您可以使用“app access token”,我猜这是你通过调用“getAccessToken”获得的(对于每个应用程序以及app id和app secret的组合,它基本上是静态的。对于非公共组,您需要一个“用户访问令牌”,这意味着您必须实现用户登录(具有user_groups权限)。请参阅此处以获取使用JavaScript API登录的文档:
https://developers.facebook.com/docs/reference/javascript/FB.login/
用户访问令牌仅在2小时内有效,您可以通过调用PHP SDK的“setExtendedAccessToken”将其延长至60天。这意味着,您无法使用此功能在您自己的网站上发布非公共群组的Feed,您只能将其呈现给一个用户。或者您存储用户令牌并每60天刷新一次。但我不建议这样做,使该组的非公开设置无效,管理员可能不喜欢它。