如何使用app访问令牌从特定用户读取流

时间:2012-08-29 16:33:38

标签: facebook facebook-fql

我创建的facebook应用程序正在请求ad_al权限read_stream和publish_stream。 用户接受应用程序并允许应用程序在我尝试使用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查询中没有访问令牌来获取活跃用户的结果。

问题是我需要访问所有正在使用app的用户帖子,而不仅仅是活跃用户。为离线用户读取流的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以申请长期访问令牌

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

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

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

应用程序访问令牌应该能够阅读用户的公开帖子。

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