【问题标题】:How to read stream from certain user with app access token如何使用应用访问令牌从特定用户读取流
【发布时间】:2012-08-30 01:07:36
【问题描述】:

我创建了请求附加权限 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 查询中不使用访问令牌来获取活动用户的结果。

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

【问题讨论】:

    标签: facebook facebook-fql


    【解决方案1】:

    您可以请求长期访问令牌

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

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

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

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

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

    【讨论】:

    • 谢谢你,汤米。因此,如果我理解正确,我必须获得长期用户访问令牌。在使用$access_token = $facebook->getAccessToken(); 获取令牌之前使用将使用$facebook->setExtendedAccessToken(); 的PHP SDK,然后将其存储在db 中以供以后使用。还应在应用高级设置中启用删除 offline_access 权限
    猜你喜欢
    • 1970-01-01
    • 2012-07-11
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 2020-02-13
    相关资源
    最近更新 更多