1

我创建了请求附加权限 read_stream 和 publish_stream 的 facebook 应用程序。在用户接受应用程序并允许应用程序阅读帖子后,当我尝试使用 fql 查询获取帖子时,我得到空结果。

这是代码

$appAccessToken = APP_ID|APP_SECRET
$fql = 'SELECT post_id, type, likes, source_id, created_time, privacy, comments FROM stream WHERE source_id = xxxxxxxxxxxxx';
$param  =   array(
    'method'    => 'fql.query',
    'query'     => $fql,
    'callback'  => '',
    "access_token" => $appAccessToken
);
$fqlResult   =   $facebook->api($param);

结果是空数组

Array ( )

我可以使用 user_access_token ("access_token" = $facebook->getAccessToken();) 甚至在 fql 查询中没有访问令牌来获取活动用户的结果。

问题是我需要访问所有使用应用程序的用户帖子,而不仅仅是活跃用户。离线用户阅读流的最佳方式是什么?

4

1 回答 1

1

您可以请求长期访问令牌

https://developers.facebook.com/roadmap/offline-access-removal/ 

但您不能使用应用访问令牌来读取私人用户流。您只能使用用户 access_token 来读取他们的流,因为它是用户权限,因此需要他们的访问令牌来验证他们是否已使用该权限对您的应用程序进行了身份验证。实际上,如果您查看流表的文档,它提到您只能为当前会话用户阅读它(这是第一个 2 个要点上方的句子)

https://developers.facebook.com/docs/reference/fql/stream/

不过,应用访问令牌应该能够阅读用户的公开帖子。

我不确定存储长期访问令牌的含义是什么,因此您必须进行研究以确保您不违反任何 TOS。

于 2012-08-29T17:07:36.717 回答