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 года.
Я заполнил форму для просмотра. Одним из необходимых элементов является "скринкаст".
Мы должны увидеть ваше приложение, используя страницу "Доступ к публичному контенту", чтобы мы могли видеть, что это не нарушает наши политики. Загрузите прокрутку видеоролика с помощью любого метода (даже запись с телефона). Вы должны показать:
- Как человек входит в систему с Facebook
- Как человек видит эту функцию, используемую в вашем приложении
Более подробные инструкции о состоянии screencast это, однако:
Вам не нужно отправлять свое приложение, если оно будет использоваться только вами или ограниченным числом людей. Любая учетная запись, указанная на вкладке "Роли" вашей панели приложений, например админы, разработчики и тестеры, может получить доступ ко всем разрешениям и создать токен доступа к пользователю или странице доступа.
Вы можете использовать любой из этих учетных записей для тестирования своего приложения и создания скринкаста.
Это невероятно запутанно. Мои вопросы:
-
Если мой код доступа к API страниц и показывает результат на моем веб-сайте, используется ли оно "уменьшенным числом людей"?
-
Если мне не нужно создавать скринкаст, как я могу подать заявку на просмотр? Нужна ли мне это (то есть "будет ли мой токен работать после 1 августа")?
-
Если мне нужен обзор со скринкастом, что именно я должен записать в моем случае? Должен ли я просто сшить несколько скринкастов моего кода и веб-сайта на одно видео? Это, имхо, звучит просто бонкерами. :)
-
Есть ли другая конечная точка вместе (которая не требует обзора или скринкаста), который я должен использовать, если мне нужно только прочитать данные моей собственной страницы?
-
Мои старые приложения работают прямо сейчас (не уверен, что 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
, для которого мне пришлось создавать скринкасты с некоторыми сравнениями две разные страницы (?!).
Итак, в несколько простых шагов:
- Получите свой токен доступа пользователя для нужного приложения из этого замечательного инструмента FB
- Создайте токен доступа к странице, как описано в документации по доступу к странице. Но не пропустите часть
... using the access token ...
. Это означает, что ваш запрос должен выглядеть как GET /{page-id}?fields=access_token&access_token=USER_ACCESS_TOKEN_FROM_STEP_1
- Затем используйте Access Token Debugger, чтобы отладить новый маркер доступа к странице, срок действия которого истекает через час. Внизу вы увидите синюю кнопку с надписью
Extend Access Token
. Хит, и все - жетон доступа к странице с истекшим сроком действия
- Используйте его, чтобы получать публичные сообщения на странице Facebook в FB GRAPH
/page-id/posts?access_token=PAGE_ACCESS_TOKEN
UPDATE
Если у вас возникли проблемы с шагом 2 (у меня были некоторые старые приложения), попробуйте использовать этот инструмент https://developers.facebook.com/tools/explorer
Ответ 3
FYI, если вы делаете это мимо блокатора скринкастов, вам все равно нужно пройти проверку бизнеса. Если вы пройдете мимо этого, я не знаю, что еще вы должны победить, чтобы очистить перформанс приложения.
Проверка приложения Шаг 2 - Требуется верификация бизнеса. Полноценка разрешений и возможностей. Затем мы проверим вашу компанию.
Для этого вам может потребоваться предоставить документацию, такую как бизнес-лицензия или счет за коммунальные услуги.