【问题标题】:Simple Facebook status return using FQL使用 FQL 的简单 Facebook 状态返回
【发布时间】:2011-08-12 17:31:38
【问题描述】:

我正在尝试在页面侧面创建一个框,以显示来自 Twitter 帐户和 Facebook 页面的 6 条最新帖子。 Twitter 完全按照我的意愿工作 - Facebook 不是。

我目前这样做的方式是使用 FQL 作为 JSON 使用 cURL 获取最新状态,将它们缓存在服务器上,然后以与实际框中的推文相同的方式显示它们。

我的问题在于访问令牌。我昨晚带着它离开了,今天早上回来发现我的缓存文件的修改日期没有改变。我检查了缓存的错误文件(如果提取的 JSON 不包含我需要的数据,则将其转储到该文件中)并且我遇到了会话过期错误。然后我创建了一个小函数,它使用 cURL(3 个 cURL 调用或一个框,我知道 - 呃)使用此 URL 检索新的访问令牌:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=XXX&client_secret=XXXX

但我现在收到一个错误,提示需要用户会话,但我想做的只是阅读最新的帖子,这根本不依赖于用户。如果可能,我真的想避免使用 Facebook SDK。

Tl;dr - FQL 似乎要求用户登录,即使只是从设置页面的墙上读取状态 - 获取不需要用户会话的数据的正确方法是什么(最好不使用 SDK) .

【问题讨论】:

    标签: php facebook facebook-fql


    【解决方案1】:

    如果您尝试从用户帐户获取状态,那么您将需要有效的用户访问令牌。

    如果您从粉丝页面获取状态,那么您只需要一个有效的应用访问令牌 - 可以从以下位置获取:

    https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials
    

    然后您可以使用返回的访问令牌从目标粉丝页面获取状态。


    SELECT id,status_id,message,time FROM status WHERE uid = XXXX LIMIT 6

    您通过用户 ID 进行查询,因此需要有效的用户访问令牌。

    【讨论】:

    • 感谢您的回复,即使使用 URL 提供的访问令牌,我仍然收到“需要用户会话”错误 (102)。我认为这可能与我的查询有关 - 我可能会得到一些限制?这是我正在使用的查询:SELECT id,status_id,message,time FROM status WHERE uid = XXXX LIMIT 6
    • 非常感谢您的帮助!查询 'stream' 表而不是 'posts' 表有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 2012-04-25
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多