我无法使用Facebook登录完全订阅我的Facebook App + Webhook到Facebook页面。页面订阅了应用程序,但App + Webhook没有收到来自页面的任何消息。
0.应用程序处于开发人员模式,启用了这些权限:
manage_pages - before review
read_page_mailboxes - before review
pages_messaging - approved review
(在开发模式下,我作为App和Page的管理员进行测试)
1.用户单击“登录”按钮,它会询问这些权限:
email, manage_pages, pages_show_list, pages_messaging, pages_messaging_phone_number, pages_messaging_subscriptions, public_profile
2.用户单击“接受”以授予所有这些权限。
当使用/me/permissions
向user_access_token
发送GET请求时返回
0: {permission: "email", status: "granted"}
1: {permission: "manage_pages", status: "granted"}
2: {permission: "pages_show_list", status: "granted"}
3: {permission: "pages_messaging", status: "granted"}
4: {permission: "pages_messaging_phone_number", status: "granted"}
5: {permission: "pages_messaging_subscriptions", status: "granted"}
6: {permission: "public_profile", status: "granted"}
3.将GET请求发送到/me/account
以获取有关用户页面的数据数组。
用户的Facebook页面每个都返回一个page_id
和page_access_token
。
data: {
0: {
access_token: "PAGE_ACCESS_TOKEN"
category: "Business Service"
category_list: {
0: {id: "xxxxxx", name: "Business Service"}
}
id: "PAGE_ID"
name: "PAGE_NAME"
tasks: ["ANALYZE", "ADVERTISE", "MODERATE", "CREATE_CONTENT", "MANAGE"]
}
}
4.显示PAGE_NAME,供用户选择订阅我的Facebook应用程序。
用户单击相应的页面以触发步骤5。
5.发送POST请求到/PAGE_ID/subscribed_apps
我为用户点击的页面使用了正确的PAGE_ACCESS_TOKEN。我包括这些subscribed_fields
var subscribeAppFields = [
"messages",
"messaging_optins",
"messaging_postbacks",
"messaging_handovers",
"standby"
];
...
FB.api( "/"+pageID+"/subscribed_apps",
"POST",
{
subscribed_fields : subscribeAppFields,
access_token : pageAccessToken
},
function (response) { ... }
);
发送GET请求到/PAGE_ID/subscribed_apps
返回:
{success: true}
如果我检查Facebook页面的设置,我的应用程序将显示在“已连接的应用程序”下:
我甚至将“切换协议的主接收器”页面设置为应用程序。
但发送到Facebook页面的消息未被App的Webhook接收。当我检查我的应用设置时,它不会在“订阅页面”下显示我的页面。
我希望Page的消息会转到我的App和Webhook,我希望页面名称出现在上面的图片“Subscribed Pages”中。
我可以使用App Messenger设置下拉菜单手动将页面订阅到Webhook,webhook将成功接收消息。但是在这里使用Facebook登录的重点是避免手动执行,这也要求我成为任何想要连接的页面的管理员。
目的是让其他页面所有者授予权限并自动将其页面连接到我的App / Webhook / Chatbot。
如何完成Page-App订阅以便将Page消息传递给App的Webhook?
我已阅读并关注或尝试过这些:
相关问题
cannot-subscribe-page-to-facebook-app subscribe-facebook-page-to-external-app subscribed-apps-page-and-app-access-token-generation cant-connect-facebook-app-to-facebook-page subscribe-facebook-test-pages-to-facebook-apps-webhook chatbot-generate-page-tokens-for-the-pages-you-dont-own-using-facebook-login
文档
Facebook Login Login Permissions Access Tokens Subscribed Apps
解决方案第1部分:如果您的页面显示订阅但您的应用程序没有,则表示您拥有USER manage_pages
权限,但未启用APP manage_pages
权限。
问题的所有步骤都是正确的。但它对我来说仍然失败。
解决方案第2部分:它继续失败,因为我以前测试过的帐户已经设置了先前尝试的延迟权限,即使我已经更新了应用程序和/或使用新用户/应用程序权限登录,旧权限在尝试新尝试时必须留下来。
因此,我必须创建一个全新的用户和测试页面,以正确测试更新的应用程序和登录过程。但那只是为了揭示实际问题。测试登录的更简单的解决方案是这样的:
每次登录(权限授予)尝试后,您必须完全删除您授予应用程序的用户权限。 要重置应用程序的用户权限,请转到:facebook.com/settings?tab=business_tools