Facebook的RSS订阅已经停止工作。

24

我们正在网站上展示来自Facebook的动态。截至昨天,我们可以使用下面的URL以JSON格式检索到这些动态:

https://www.facebook.com/feeds/page.php?format=json&id=[id_of_the_page]

但是今天我发现链接已经失效了。它失效的原因是什么?

还有,我能否使用新的Graph API访问我的页面的JSON数据源?


1
在 https://developers.facebook.com/bugs 提交一个错误报告。 - WizKid
1
这不是一个bug...@user2789978,你应该定期关注FB API更新日志,这在2014年10月30日已经宣布:https://developers.facebook.com/docs/apps/changelog#v2_2_90_day_deprecations - Tobi
@Tobi 实际上情况并非如此,人们不会阅读 FB API 的变更日志。这个弃用还包括了 RSS 订阅,对我来说很痛苦。 - Ciantic
1
@Ciantic 嗯,如果他们严重依赖FB功能,那么他们应该这样做。其他一切都是疏忽。 - Tobi
2个回答

23

最终我成功将Facebook页面的动态信息嵌入到我的网站中。这是我遵循的步骤来恢复这些信息:

第一步:我登录了Facebook开发者门户并创建了一个新的Facebook应用程序(网站)。您可以从以下链接中找到有关如何创建Facebook应用程序的详细信息:如何创建Facebook应用程序

在新创建的应用程序中,您将找到“应用ID”和“应用密钥”值。

第二步:在我的网站上,我使用“应用ID”和“应用密钥”从Facebook检索“access_token”。因为我使用的是C#,所以我使用的代码行如下:

string access_token = "";
try {
    access_token = webClient.DownloadString("https://graph.facebook.com/oauth/access_token?client_id=616255239999&client_secret=989898989898acec7c3aabbccddf84b66&grant_type=client_credentials");  
}
catch {}

将客户端ID替换为从前一步复制的应用程序ID,将客户端密钥替换为应用程序秘密值。如果这些值正确,您将获得如下响应:

access_token=616255878567492343|UYgAYWXYztpFGRawnZ2VlTE

步骤三:现在使用从上一阶段检索的访问令牌调用Facebook Graph API来获取信息流:

string facebookjson = webClient.DownloadString("https://graph.facebook.com/v2.2/1730999949494/feed?access_token=616255878567492343|UYgAYWXYztpFGRawnZ2VlTE");

URL的结构如下:

https://graph.facebook.com/v2.2/[你的Facebook页面ID]/feed?access_token=[你的访问令牌值]

完成!您将获得来自您的Facebook页面的JSON响应。


1
谢谢!希望您自此发布以来已更改了您的客户端密钥 ;) - Tommy Bravo
请使用以下链接获取最新的API和仅由该页面发布的帖子: https://graph.facebook.com/v2.3/[Page_ID]/posts?access_token=[Access_Token] - Atef
1
@TejSoft 怎样获取 RSS 格式的订阅源?(.xml) 我已经能够获取 JSON 格式的示例。 - Chandra Sekhar
@ChandraSekhar,你可以解析JSON并将其输出为RSS(xml)格式。但是大多数社交网络正在逐步淘汰RSS订阅。我建议使用JSON来读取并根据您的需求显示帖子(在网站或应用程序上)。 - TejSoft

15

查看ChangeLog。 https://developers.facebook.com/docs/apps/changelog

90天弃用(自2015年1月28日星期三起生效)。

页面JSON源(例如 https://www.facebook.com/feeds/page.php?id=%2019292868552&format=json) 现已被弃用,将从2015年1月28日开始停止返回数据。 开发人员应改为在Graph API的页面对象上调用feed边缘:/v2.2/{page_id}/feed。

来自Facebook团队的公告。 https://developers.facebook.com/bugs/1539780319626180/

首先,我要道歉。由于错误,页面RSS源在昨天被删除,以及页面JSON源。

我们立即恢复页面RSS源。修复程序应在接下来的24小时内部署,并且我会尽快让您知道RSS源何时再次可用。

请注意,我们将在今年上半年弃用页面RSS源。我们将像页面JSON源一样宣布90天的重大更改。

我们弃用源的原因是由于缺乏使用(与Graph API Page feed相比)。 我们已决定将重点放在向Graph API页面feed端点添加功能和提高其质量上。


2
看起来他们现在可能已经将这个更改变为永久性的了。今天早上我所有依赖于这个 feeds/page.php URL 的 IFTTT 触发器都坏掉了。真是烦死了。 - Nathan Beach

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接