Facebook登录连接页面到应用程序和页面显示订阅,但应用程序没有

问题描述 投票:1回答:1

问题:

我无法使用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/permissionsuser_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_idpage_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页面的设置,我的应用程序将显示在“已连接的应用程序”下:

enter image description here

我甚至将“切换协议的主接收器”页面设置为应用程序。

enter image description here

但发送到Facebook页面的消息未被App的Webhook接收。当我检查我的应用设置时,它不会在“订阅页面”下显示我的页面。

enter image description here

我希望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

facebook-graph-api facebook-javascript-sdk facebook-login chatbot
1个回答
1
投票

解决方案第1部分:如果您的页面显示订阅但您的应用程序没有,则表示您拥有USER manage_pages权限,但未启用APP manage_pages权限。

问题的所有步骤都是正确的。但它对我来说仍然失败。

解决方案第2部分:它继续失败,因为我以前测试过的帐户已经设置了先前尝试的延迟权限,即使我已经更新了应用程序和/或使用新用户/应用程序权限登录,旧权限在尝试新尝试时必须留下来。

因此,我必须创建一个全新的用户和测试页面,以正确​​测试更新的应用程序和登录过程。但那只是为了揭示实际问题。测试登录的更简单的解决方案是这样的:

每次登录(权限授予)尝试后,您必须完全删除您授予应用程序的用户权限。 要重置应用程序的用户权限,请转到:facebook.com/settings?tab=business_tools

© www.soinside.com 2019 - 2024. All rights reserved.