首先,我很抱歉,因为我知道StackOverflow上已经有其他与此相关的问题。不幸的是,他们似乎都没有全面的答案,其他人也没有解决我的问题。
我正试图在Facebook上注册页面的实时更新。从本质上讲,当一个页面的管理员发布状态更新或共享某些内容时,我希望收到通知
GRAPH API版本
在开始之前,我想首先说我正在使用Facebook的GRAPH API v2.3。我注意到/app-id/subscriptions GRAPH API边缘文档页面上的一些消息称"v2.2中删除了一些功能"。
我还没有测试过API v2.2版本,但如果有人认为它可能相关,我可以。我无法想象脸书会删除这个功能,但在这一点上,我不排除任何可能性。:)
到目前为止我所尝试的
我将我的应用程序设置为具有选项卡页组件,并成功地在应用程序控制面板中填写了所有相关信息。这是我的下一步所必需的,即将应用程序作为选项卡添加到我的页面中。
据我所知,我的应用程序必须是我想要更新的页面上的一个选项卡,才能接收该页面的更新。(或者至少,页面需要"安装"应用程序,当应用程序被添加为选项卡时就会发生这种情况)
我已经向/page-id/tabs
发出了POST
请求,以便在我的页面上为我的应用程序创建一个选项卡。现在,当我向/page-id/tabs
发出GET
请求时,我可以看到我的应用程序包含在页面的选项卡列表中:
{
"id": "app_id/tabs/tab_id",
"image_url": "...",
"name": "My Tab Name",
"link": "...",
"application": {
"name": "My App",
"id": "app_id"
},
"is_permanent": false,
"position": 5,
"is_non_connection_landing_tab": false
}
我已经向/app-id/subscriptions
发出了POST
请求,为我的应用程序创建user
和page
订阅。两个订阅都订阅了field
参数。当我向/app-id/subscriptions
提出请求时,我得到以下响应:
{
"data": [
{
"object": "user",
"callback_url": "my_callback_url",
"fields": [
"feed"
],
"active": true
},
{
"object": "page",
"callback_url": "my_callback_url",
"fields": [
"feed"
],
"active": true
}
]
}
为了确认,当我创建订阅时,我确实收到了对回调URL的验证请求,并且——据我所知——成功地通过了验证,因为我在创建订阅时得到了成功的响应。
最后,我向/page-id/subscribed_apps
提出了GET
请求。我很担心,因为我没有在这个响应中看到我的应用程序:
{
"data": [
{
"name": "Discussion Boards",
"id": "2373072738"
}
]
}
问题
因此,在所有这些之后,当我将帖子作为我的页面时,我确实不会收到来自Facebook的任何POST
请求到我的回调URL。
值得注意的是,我的一位同事已经能够使用几乎相同的步骤从他的个人资料中接收user
更新。我目前无法通过我的个人资料接收user
更新,但我想这是因为我还没有通过我的Facebook个人资料验证我的应用程序。
问题/思想/理论
我是否错过了一些明显(或不那么明显)的步骤,需要执行这些步骤才能让Facebook向我发送通知请求?
我的应用程序是否需要通过Facebook的登录审查或类似程序才能接收页面更新?
这只是坏了吗?如果是,有什么解决办法吗?
创建页面订阅不再通过/page_id/tabs
完成,而是通过POST请求/page_id/subscribed_apps
完成。不需要额外的参数(显然除了页面访问令牌),它会自动为用于发出请求的应用程序生成订阅。
这是目前在变更日志中提到的,https://developers.facebook.com/docs/apps/changelog#v2_2_new_features
应在https://developers.facebook.com/docs/graph-api/reference/v2.3/page/subscribed_apps尽管如此,但看起来Facebook正在重组他们的文档(再次),并且还没有完全跟上API的当前状态。