Facebook Вход соединяет страницу с приложением, а страница показывает подписку, но приложение не - PullRequest
0 голосов
/ 01 февраля 2019

Проблема:

Я не могу полностью подписать свое приложение Facebook + Webhook на страницу Facebook с помощью входа в Facebook.Страница подписывается на приложение, но App + Webhook не получает никаких сообщений со страницы.


Шаги, на которые я подписан:

0.Приложение находится в режиме разработчика с включенными разрешениями:

manage_pages - before review
read_page_mailboxes - before review
pages_messaging - approved review

(В режиме разработки я тестирую как администратор приложения и страницы)

1.Пользователь нажимает кнопку «Вход» и запрашивает следующие разрешения:

email, manage_pages, pages_show_list, pages_messaging, pages_messaging_phone_number, pages_messaging_subscriptions, public_profile

2.Пользователь нажимает Принять, чтобы предоставить все эти разрешения.

И это возвращается при отправке запроса GET на /me/permissions с использованием user_access_token

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Настройки, мое приложение отображается в разделе «Подключенные приложения»:

enter image description here

И я даже установил страницу «Основной приемник для протокола передачи обслуживания» в качестве приложения.

enter image description here

Но сообщения, отправленные на страницу Facebook, не принимаются Webhook приложения.И когда я проверяю настройки своего приложения, оно не показывает мою страницу в разделе «Подписанные страницы».

enter image description here

Я ожидаю, что сообщения страницы будут отправлены намое приложение и веб-крючок, и я ожидаю, что имя страницы появится на изображении выше в разделе «Страницы с подпиской».

Я могу вручную подписать страницу на веб-крючок, используя раскрывающийся список параметров приложения App Messenger, и веб-крюк получитсообщения успешно.Но весь смысл использования Facebook Login здесь состоит в том, чтобы избегать этого вручную, что также требует, чтобы я был администратором любой страницы, которая хочет подключиться.

Цель состоит в том, чтобы другие владельцы страниц могли предоставить разрешение и автоматически подключить свою страницу к моему приложению / Webhook / Chatbot.


Вопрос

Как мне заполнитьСтраница - подписка на приложение, чтобы сообщения страницы передавались на веб-крючок приложения?


Я прочитал и выполнил или попробовал:

Вопросы, относящиеся *

Невозможно подписать страницу-на-страницу-приложение
подписать-страницу-страницу-на-внешнее приложение
подписанные-приложения-страницы-и-app-access-token-generation
не могу подключить-facebook-app-to-facebook-page
подписаться-facebook-test-pages-to-facebook-apps-webhook
chatbot-генерировать-токены-страницы-для-страниц-вы-не-сами-использующие-facebook-login

Документация

Facebook Login
Права доступа
Токены доступа
Подписные приложения

1 Ответ

0 голосов
/ 18 февраля 2019

Решение Часть 1: Если на вашей странице отображается подписка, а в приложении - нет, это означает, что у вас есть разрешение USER manage_pages, но не разрешено разрешение APP manage_pages.

Все шаги из вопроса верны.Но он продолжал терпеть неудачу для меня.

Часть решения 2: Он продолжал терпеть неудачу для меня, потому что учетные записи, с которыми я имел обыкновение проверять, имели длительные разрешения, уже установленные из более ранних попыток, и хотяЯ обновил приложение и / или Логин с новыми разрешениями пользователя / приложения, старые разрешения должны были остаться при новых попытках.

Поэтому мне пришлось создать совершенно нового пользователя и тестовую страницу, чтобы правильно протестироватьобновлены приложение и процесс входа в систему.Но это было только для того, чтобы раскрыть актуальную проблему.Более простое решение для тестирования входа в систему заключается в следующем:

Вы должны полностью удалять пользовательские разрешения, предоставленные вашему приложению после каждой попытки входа в систему (предоставления разрешений).
Чтобы сбросить разрешения USER для приложения, перейдите на: facebook.com / settings? Tab = business_tools

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...