Как исправить HTTP-статус 401 (неавторизованный) на боте-коннекторе при вызове веб-крючка фейсбука-мессенджера? - PullRequest
0 голосов
/ 23 января 2019

После настройки бота-коннектора (SAP Conversational AI: https://github.com/SAPConversationalAI/bot-connector),, создав канал для fb-messenger и настроив веб-крючок в приложении fb, я постоянно получаю http-статус 401 (неавторизованный) в моемжурнал бот-коннектора при отправке сообщения от моего fb-messenger.

Вот что я сделал до сих пор: (Я следовал этому руководству: https://github.com/SAPConversationalAI/bot-connector/wiki/Channel---Messenger)

  • развернутый бот-коннектор в облаке Google в качестве службы движка приложения для получения [URL-адреса бот-коннектора]

  • созданный бот-коннектор:

    • POST на [URL-адрес бота-коннектора] / v1 / разъемы с телом:
    {"url":[bot-connector endpoint url]}
    
    • POST-ответ:
    {
       "results": {
           "id": [connector id],
           "url": [bot-connector endpoint url],
           "isTyping": true,
           "conversations": [],
           "channels": []
       },
       "message": "Connector successfully created"
    }
    
  • созданоканал для фб-мессенджера:

    • POST на [адрес бот-коннектора] / v1 / разъемы / [идентификатор разъема] / каналы с телом:
    {
        "slug":"channel-messenger-srtbot-dev",
        "type":"messenger",
        "token":[fb-app secret],
        "apiKey":[fb-app api-key],
        "isActivated":true
    }
    
    • POST-ответ:
    {
       "results": {
           "id": [connector id],
           "updatedAt": "2019-01-22T15:03:29.569Z",
           "createdAt": "2019-01-22T15:03:29.569Z",
           "webhook": "/v1/webhook/[channel id]",
           "slug": [name of my channel],
           "type": "messenger",
           "token": [fb-app secret],
           "apiKey": [fb-app api-key],
           "connector": [connector id],
           "locales": [],
           "openingType": "never",
           "hasGetStarted": false,
           "forwardConversationStart": false,
           "isActivated": true,
           "isErrored": false,
           "webhookToken": [fb webhook token]
       },
       "message": "Channel successfully created"
    }
    
  • настроенный fb-messenger-webhook: (после завершения настройки я получаю http-статус 200 в журнале бота-коннектора)

    • callback-url: [URL-адрес бота-коннектора] / v1 / webhook / [идентификатор канала]
    • токен: [токен fb webhook]
  • подписал webhook на мою fb-страницу

  • отправил сообщение в мой fb-messenger

Ожидаемые результаты:

  • после отправки сообщения в фб-мессенджере:
    • http-status 200 в журнале бота-коннектора
    • сообщения перенаправляются на [URL-адрес конечной точки соединителя бота]
    • бот отвечает на сообщение (я получаю ответ в мессенджере fb)

Фактические результаты:

  • после отправки сообщения в фб-мессенджере:
    • http-status 401 (не авторизовано) в журнале бота-коннектора (примерно каждые 60 секунд после первого фбсообщение-мессенджер)
    • больше ничего не происходит
    • я не получаю ответа в fb-messenger

1 Ответ

0 голосов
/ 24 января 2019

При создании канала секрет приложения должен передаваться как атрибут apiKey, а токен страницы - как атрибут токена. Когда канал создан, он будет иметь атрибут webhookToken. Это следует использовать в качестве токена проверки при настройке веб-крючка на Facebook.

Так что вместо того, что вы должны передать для создания канала, должно выглядеть так:

{
    "slug":"channel-messenger-srtbot-dev",
    "type":"messenger",
    "token":[fb-page token],
    "apiKey":[fb-app secret],
    "isActivated":true
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...