Платформа Facebook Messenger - ›Приложения с подпиской и graph-api у меня не работают

Я пытаюсь разработать для своего бота поддержку интеграции в один клик, которая будет включать мессенджер FB. Для мессенджера FB сделал следующее:

  1. Следуя руководству «по быстрому запуску», создал Приложение Facebook.
  2. Последовал руководству "facebook-login" и развернул процесс входа в facebook, который работает с разрешениями для: - public_profile - email - manage_pages - pages_show_list - pages_messaging_subscriptions - pages_messaging
  3. Затем я использовал графический API «/ me / accounts», чтобы получить список имен страниц, идентификаторов страниц и access_token для «тестового пользователя», созданного мной в facebook.
  4. Теперь я выбрал страницу под этим «тестовым пользователем» (со всеми разрешениями) и попытался запустить этот JS-код -

FB.api(
      `/${page.id}/subscribed_apps?access_token=${page.access_token}`,
      function (response) {        
        console.log(`response = {$JSON.stringify(response)}`);
        if (response && !response.error) {          
          /* handle the result */
        }
      }
    );

Проблема: я получаю response = {"data": []}, что может быть нормально, но когда я смотрю на страницу-> настройки-> Платформа обмена сообщениями-> Подписанные приложения, я не вижу ни одного приложения, на которое подписано там. Между прочим, когда я запускаю это без надлежащего access_token, я получаю ошибку # 210 («требуется access_token»), которая соответствует ожиданиям ...

Есть идеи, как правильно подписать приложение на страницу? Должен сказать, что я также пробовал это с помощью инструмента graph api explorer и получил тот же результат ...

Заранее спасибо :-).


person Gadi Ben Amram    schedule 22.03.2017    source источник
comment
Это должен быть запрос POST.   -  person CBroe    schedule 22.03.2017
comment
Привет, @CBroe - спасибо за помощь. работает :-).   -  person Gadi Ben Amram    schedule 22.03.2017


Ответы (1)


@CBroe понял все правильно, и возникли 2 проблемы: 1. Я должен был использовать метод POST () вместо метода GET (). 2. Когда вы используете инструмент graph-api-explorer, вы увидите, что он работает, затем отключите роль и получите код JS ... проблема в том, что код немного сбивает с толку, так как вы получаете следующее:

FB.api(
  `/${my_page_id}/subscribed_apps`,
  'POST',
  {},
  function(response) {
      // Insert your code here
  }
);

но на самом деле это должно быть так:

FB.api(
  `/${my_page_id}/subscribed_apps`,
  'POST',
  {"access_token": `${page_access_token}`},
  function(response) {
      // Insert your code here
  }
);

Не забудьте взять access_token из api / me / accounts, как я описал в моем вопросе.

Еще раз спасибо @CBroe за то, что показал мне, как решить эту проблему :-)

person Gadi Ben Amram    schedule 22.03.2017