我创建了一个facebook应用程序,它正在请求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查询中没有访问令牌。
问题是,我需要访问所有使用应用程序的用户帖子,而不仅仅是活动用户。离线用户阅读流的最佳方式是什么?
您可以请求一个长期访问令牌
https://developers.facebook.com/roadmap/offline-access-removal/
但您不能使用应用程序访问令牌来读取私人用户流。您只能使用用户access_token来读取他们的流,因为这是用户权限,因此需要他们的访问令牌来验证他们是否使用该权限验证了您的应用程序。事实上,如果你查看流表的文档,它提到你只能为当前会话用户阅读它(这是前两个要点上方的句子)
https://developers.facebook.com/docs/reference/fql/stream/
不过,应用程序访问令牌应该能够读取用户的公共帖子。
我不确定存储长期访问令牌会有什么影响,所以你必须进行研究,以确保你没有违反任何TOS。