首先,我道歉,因为我知道StackOverflow上还有其他与此相关的问题。不幸的是,他们似乎都没有全面的答案,其他人也没有解决我遇到的问题。
我正在尝试在Facebook上注册页面的实时更新。基本上,当页面的管理员发布状态更新或分享某些内容时,我希望收到有关它的通知。
在开始之前,我想首先说我正在使用 Facebook的GRAPH API v2.3 。我注意到/app-id/subscriptions GRAPH API edge documentation page上的一些消息表明"某些功能已在v2.2"中删除。
我没有使用API的v2.2进行测试,但是如果有人认为它可能是相关的,我可以。我无法想象Facebook会删除这个功能,但此时我并没有排除任何结果。 :)
我将应用设置为标签页组件,并在应用控制面板中成功填写了所有必需信息。这是我下一步所必需的,它将应用程序作为选项卡添加到我的页面。
根据我的理解,我的应用程序必须是我想要更新的页面上的选项卡才能接收该页面的更新。 (或者至少,页面需要安装"应用程序,当应用程序作为选项卡添加时会发生)
我已向POST
发出/page-id/tabs
请求,要求在我的网页上为我的应用创建标签。现在,当我向GET
发出/page-id/tabs
请求时,我可以看到我的应用程序包含在我的页面的标签列表中:
{
"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
}
我已向POST
发出/app-id/subscriptions
请求,为我的应用创建了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
}
]
}
只是为了确认,当我创建订阅时,我 收到了我的回调网址的请求以进行验证,并且 - 据我所知 - 已成功通过验证,因为我是在我创建订阅时给出了成功的响应。
最后,我向GET
提出了/page-id/subscribed_apps
请求。我很担心,因为我不在这个回复中看到了我的应用程序:
{
"data": [
{
"name": "Discussion Boards",
"id": "2373072738"
}
]
}
所以,在所有这些之后,当我发布帖子作为我的页面时,我不从Facebook收到任何POST
请求到我的回调网址。
值得注意的是,我的同事已经能够使用几乎相同的步骤从他的个人资料中获得user
次更新。我目前无法通过个人资料获得user
次更新,但我认为这是因为我没有使用我的Facebook个人资料验证我的应用。
我是否遗漏了一些需要执行的明显(或不那么明显)的步骤,以便Facebook向我发送通知请求?
我的应用是否需要通过Facebook的Login Review或类似内容才能接收网页更新?
这只是破了吗?如果有,任何解决方法?
答案 0 :(得分:3)
不再通过/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状态。