使用 FQL 简单返回 Facebook 状态

发布于 2024-11-29 03:26:22 字数 786 浏览 1 评论 0原文

我正在尝试在页面一侧创建一个框,显示 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)。

I'm trying to create a box on the side of a page that displays the 6 latest posts from a Twitter account and Facebook page. Twitter is working exactly how I want it to - Facebook is not.

The way I am doing it at the moment is to fetch the latest statuses using FQL as JSON usin cURL, caching them on the server, then displaying them in the same way as I am the tweets in the actual box.

My problem lies with the access token. I went away last night with it working, came back this morning and noticed that the modified date of my cached file hadn't changed. I checked the cached error file (where the fetched JSON gets dumped if it doesn't contain the data I need) and I had a session expired error. I then created a small function that uses cURL (3 cURL calls or one box, I know - urgh) to retrieve a new access token using the this URL:

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

But I now get an error that a User Session is required, but all I want to do is to read the latest posts, that isn't user dependant at all. I really want to avoid using the Facebook SDK if possible.

Tl;dr - FQL seems to require users to log in even just to read statuses off of a set page's wall - what's the correct way of getting this data that doesn't require a user session (preferably without using the SDK).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

零度° 2024-12-06 03:26:22

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

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

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

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


从状态中选择 id、status_id、消息、时间,其中 uid = XXXX LIMIT 6

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

If you're trying to get the status from a User account then you will require a valid user access token.

If you're getting statuses from a Fan Page then you just require a valid app access token - which can be obtained from:

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

You can then use the returned access token to get the statuses from the target Fan Page.


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

You're querying by user id so that will require a valid user access token.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文