API страниц Facebook: просмотр страницы "Доступ к общедоступному контенту" screencast

На моем веб-сайте используется API-страница Facebook, чтобы вытащить общедоступный контент со страницы Facebook, опубликованной владельцем страницы, для создания динамичного блога с четкой ссылкой на страницу Facebook.

Вы можете увидеть его здесь в действии: https://kc-hrubeho.cz (ctrl + F "Facebook"). Желтая кнопка "Načíst další" работает как разбиение на страницы AJAX. Извините за чешский язык, этот сайт, к сожалению, не имеет английской версии.

Я использую этот URL для получения объекта содержимого JSON содержимого страницы: https://graph.facebook.com/<PAGE-ID>/feed?access_token=<TOKEN>&limit=10&fields=message,link,attachments,created_time,full_picture,picture,timeline_visibility

Сейчас это работает, но в обзоре приложений часто говорится следующее:

Мое приложение, используемое для доступа к общедоступному контенту на страницах, на меня влияют изменения v3.0?

Да. Приложениям, которые обращаются к содержимому публичных страниц, необходимо запросить функцию доступа к публичному доступу страницы и потребовать рассмотрения через Facebook.

Кроме того, есть это уведомление:

Чтобы поддерживать текущий доступ к API, ваше приложение должно быть отправлено на рассмотрение к 1 августа 2018 года.

Я заполнил форму для просмотра. Одним из необходимых элементов является "скринкаст".

Мы должны увидеть ваше приложение, используя страницу "Доступ к публичному контенту", чтобы мы могли видеть, что это не нарушает наши политики. Загрузите прокрутку видеоролика с помощью любого метода (даже запись с телефона). Вы должны показать:

  1. Как человек входит в систему с Facebook
  2. Как человек видит эту функцию, используемую в вашем приложении

Более подробные инструкции о состоянии screencast это, однако:

Вам не нужно отправлять свое приложение, если оно будет использоваться только вами или ограниченным числом людей. Любая учетная запись, указанная на вкладке "Роли" вашей панели приложений, например админы, разработчики и тестеры, может получить доступ ко всем разрешениям и создать токен доступа к пользователю или странице доступа.

Вы можете использовать любой из этих учетных записей для тестирования своего приложения и создания скринкаста.

Это невероятно запутанно. Мои вопросы:

  1. Если мой код доступа к API страниц и показывает результат на моем веб-сайте, используется ли оно "уменьшенным числом людей"?

  2. Если мне не нужно создавать скринкаст, как я могу подать заявку на просмотр? Нужна ли мне это (то есть "будет ли мой токен работать после 1 августа")?

  3. Если мне нужен обзор со скринкастом, что именно я должен записать в моем случае? Должен ли я просто сшить несколько скринкастов моего кода и веб-сайта на одно видео? Это, имхо, звучит просто бонкерами. :)

  4. Есть ли другая конечная точка вместе (которая не требует обзора или скринкаста), который я должен использовать, если мне нужно только прочитать данные моей собственной страницы?

  5. Мои старые приложения работают прямо сейчас (не уверен, что 1 августа, см. Выше). Для приложений с той же целью (просто для того, чтобы читать общедоступный контент страницы FB, принадлежащий владельцу приложения), созданный после всей суеты с обзорами, будет ли такой же порядок, как и для старых?

Заранее спасибо!

редактировать

Это то, что я слышал от модератора группы официальной группы поддержки FB. Сообщество разработчиков Facebook:

Вы можете использовать приложение в режиме dev для получения фида для страниц, на которые вы являетесь администратором. [...] Я не знаю, изменится ли 1 августа текущее поведение или если текущее поведение является даже предполагаемым поведением. [...] На самом деле я никогда не встречал человека, который мог предсказать, что произойдет в 90+ дни... большинство экспертов даже не могут предсказать завтрашнюю погоду;) Серьезно, я не знаю...

Очень расстраивает, но пока самый конкретный ответ я получил.

Ответ 1

Если мой код обращается к API страниц и показывает результат на моем веб-сайте, используется ли оно "уменьшенным числом людей"?

Вы, скорее всего, единственный потребитель API в своем приложении. Поскольку это вызов AJAX в фоновом режиме, а не приложение на основе входа в систему, должна применяться ситуация с уменьшенным числом.

Если мне не нужно создавать скринкаст, как я могу подать заявку на просмотр? Нужна ли мне это (то есть "будет ли мой токен работать после 1 августа")?

До тех пор, пока роли разработчиков приложений и страниц будут разделены, переключение приложения в режим разработки обеспечит его работу.


"Если ваше приложение находится в режиме dev, вы должны иметь доступ к токенам доступа к страницам с любыми разрешениями для тех, кто имеет роль в вашем приложении. Если вы просто хотите управлять сообщениями на своей странице или страницами пользователей, имеющих роли на ваше приложение, вы сможете сделать это в режиме разработки, не отправляя на просмотр приложения ". - Ответ от поддержки разработчиков Facebook на https://developers.facebook.com/support/bugs/2029233277148530/ (частный отчет от меня)


Если мне нужен обзор со скринкастом, что именно я должен записать в моем случае? Должен ли я просто сшить несколько скринкастов моего кода и веб-сайта на одно видео? Это, имхо, звучит просто бонкерами. :)

См. Предыдущее.

Есть ли другая конечная точка вместе (которая не требует обзора или скринкаста), который я должен использовать, если мне нужно только прочитать данные моей собственной страницы?

Использование конечной точки фида страницы (/PAGE_ID/feed), при том, что пользователь, который является разработчиком приложения, и имеет роль на странице, должен работать, пока приложение находится в режиме разработки.

Мои старые приложения работают прямо сейчас (не уверен, что 1 августа, см. Выше). Для приложений с той же целью (просто для того, чтобы читать общедоступный контент страницы FB, принадлежащий владельцу приложения), созданный после суеты с обзорами, будет ли такое же решение [e] установлено, что и для старых?

Крайний срок 1 августа - для определенного набора разрешений

  • user_friends
  • USER_LINK
  • user_gender
  • user_age_range

Он должен работать одинаково, поскольку для отображения сообщений на странице не требуется.

Используйте токен пользователя или страницы с доступом к управляющим файлам, поскольку токен приложения не может определить, есть ли у вас роль на странице.

Да, это будет означать, что вам придется реализовать способ либо обновить токен пользователя, либо обеспечить, чтобы расширенный токен страницы не был аннулирован в фоновом режиме.

HTTP GET /page__id_owned/feed?access_token=APP|TOKEN

Response
#10) To use 'Page Public Content Access'...

HTTP GET /page__id_owned/feed?access_token=access_token_no_manage_pages

Response
#10) To use 'Page Public Content Access'...

HTTP GET /page__id_owned/feed?access_token=access_token_manage_pages

Response
{
  "data": [
    {
      "created_time": "2018...

HTTP GET /page__id_NOT_owned/feed?access_token=access_token_manage_pages

 #10) To use 'Page Public Content Access'...

Содержимое публичной страницы напрямую не связано с вашим прецедентом, т.е. Вы не используете "Содержимое публичной страницы". Это относится к сценарию, в котором вы анализируете общедоступный контент в качестве файлового пожара, см. Раздел общего использования на странице https://developers.facebook.com/docs/apps/review/feature#reference-PAGES_ACCESS.


"Page Public Content Access", с другой стороны, представляет собой функцию уровня приложения для доступа только для чтения к анонимным общедоступным данным, включая бизнес-метаданные, публичные комментарии, сообщения и обзоры для общедоступной страницы (не принадлежащей никому разработчику в вашем приложении) https://developers.facebook.com/docs/apps/review/feature#reference-PAGES_ACCESS "- ответ от поддержки разработчиков Facebook на https://developers.facebook.com/support/bugs/2029233277148530/ (частный отчет от меня)


Ответ 2

После большой борьбы с прямой поддержкой FB и FB Dev Community Group я нашел способ получать публичные посты на своей странице FB, не имея печально известного Page Public Content Access, для которого мне пришлось создавать скринкасты с некоторыми сравнениями две разные страницы (?!).

Итак, в несколько простых шагов:

  1. Получите свой токен доступа пользователя для нужного приложения из этого замечательного инструмента FB
  2. Создайте токен доступа к странице, как описано в документации по доступу к странице. Но не пропустите часть ... using the access token .... Это означает, что ваш запрос должен выглядеть как GET /{page-id}?fields=access_token&access_token=USER_ACCESS_TOKEN_FROM_STEP_1
  3. Затем используйте Access Token Debugger, чтобы отладить новый маркер доступа к странице, срок действия которого истекает через час. Внизу вы увидите синюю кнопку с надписью Extend Access Token. Хит, и все - жетон доступа к странице с истекшим сроком действия
  4. Используйте его, чтобы получать публичные сообщения на странице Facebook в FB GRAPH /page-id/posts?access_token=PAGE_ACCESS_TOKEN

UPDATE

Если у вас возникли проблемы с шагом 2 (у меня были некоторые старые приложения), попробуйте использовать этот инструмент https://developers.facebook.com/tools/explorer

Ответ 3

FYI, если вы делаете это мимо блокатора скринкастов, вам все равно нужно пройти проверку бизнеса. Если вы пройдете мимо этого, я не знаю, что еще вы должны победить, чтобы очистить перформанс приложения.

Проверка приложения Шаг 2 - Требуется верификация бизнеса. Полноценка разрешений и возможностей. Затем мы проверим вашу компанию.

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