it-roy-ru.com

Жетоны доступа к странице Facebook - срок их действия истекает?

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

  1. Токен доступа пользователя
  2. Токен доступа к странице

Я хорошо знаком с токенами доступа пользователей, но не знаком с токенами доступа к страницам.

Кто-нибудь знает, как долго токен доступа к странице остается в силе? Все, что я могу найти на сайте Facebook, это этот краткий абзац , в котором ничего не говорится о его истечении.

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

Я спрашиваю, потому что я хочу знать, как часто я должен запрашивать API Graph Facebook и получать токены доступа к странице. Должен ли я просто запросить их один раз, когда пользователь регистрируется? Или я должен запрашивать их по одному на каждый вызов API, если они постоянно меняются? Последнее явно более обременительно!

69
dbau

Срок действия токенов страницы истекает, когда срок действия токена доступа истекает для пользователя, для которого был создан токен страницы. Edit 6.28.2013: Если вы расширили токен доступа пользователя и получили новый токен доступа к странице для пользователя, этот токен страницы не истечет, если пользователь не деавторизирует ваше приложение.

Автономный доступ теперь устарел, но вы можете продлить токен доступа на 60 дней. Если вы расширите токен доступа пользователя, то токены страницы, сгенерированные из этой учетной записи пользователя также будет выдан срок их действия, чтобы соответствовать не истечет (отредактировано 6.28.2013). Значение для маркеров страницы может измениться после расширения, поэтому обязательно добавьте новые маркеры страницы из соединения с графиком /accounts пользователя после расширения токена пользователя.

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

См https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokenshttps://developers.facebook.com/docs/facebook-login/access-tokens/# extendinghttps://developers.facebook.com/docs/facebook-login/
https://developers.facebook.com/roadmap/offline-access-removal/https://developers.facebook.com/blog/post/2011/05/13/ как - обрабатывать токены доступа с истекшим сроком действия/

42
rmarscher

Вы можете расширить токен доступа к странице, чтобы он никогда не истек. Документация немного мутная, но на следующих страницах есть соответствующая информация, и вам, очевидно, нужно быть администратором страницы. Обратите особое внимание на сценарии 4 и 5 по второй ссылке.

https://developers.facebook.com/docs/reference/api/page/#page_access_tokenshttps://developers.facebook.com/roadmap/offline-access-removal/#page_access_token

С помощью проводника графиков просто получить токены из Facebook. В графическом обозревателе также можно отлаживать токен, в котором будет указана дата истечения срока действия, поэтому вы можете убедиться, что он никогда не истекает. График Explorer: https://developers.facebook.com/tools/Explorer

Нажмите на кнопку Получить токен, чтобы получить свой токен. Сохраняя свой идентификатор в панели запросов, просто добавьте/account к вашему идентификатору, чтобы он выглядел следующим образом: /123456789101112/accounts. Убедитесь, что это запрос GET (раскрывающийся список слева от панели запросов).

Это восстановит все страницы, с которыми вы настроены работать. Затем вам нужно сделать запрос GET:

/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN 

Ваши APP_ID и APP_SECRET можно найти в настройках администрирования ваших приложений. Используйте ваш личный токен доступа в качестве последнего параметра (EXISTING_ACCESS_TOKEN). Это вернет токен личного доступа на 60 дней. Скопируйте этот токен в панель токенов доступа, которая находится над панелью запросов. Теперь сделайте запрос GET к USER_ID/account, как мы делали в начале. Это снова вернет список страниц, с которыми вы настроены для работы.

Но на этот раз токены страниц, перечисленные со страницами, не устаревают. Вы можете проверить это, скопировав маркер страницы в панель «Токен доступа» и нажав кнопку «Отладка». Это даст вам подробную информацию об этом токене доступа, включая время истечения, которое никогда не должно быть в этом случае.

ОБНОВИТЬ

Я также обнаружил, что Проводник графиков Facebook иногда путают с пользовательским контекстом и могут быть ненадежными во все времена. Альтернативы Fiddler или Почтальон .

12
Simon.Ponder

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

  1. Запрошен токен доступа пользователя -> выдан токен пользователя на 60 дней
  2. Запрашиваемые токены доступа к странице -> выданы токены доступа к странице, срок действия которых не истек, а токен доступа первоначального пользователя также обновляется и никогда не истекает.

Надеюсь, что это прояснит некоторые из путаницы здесь. Я проверил это со многими разными пользователями в нашем приложении и каждый раз вижу одно и то же. 

Если токены доступа к странице никогда не запрашиваются, срок действия исходного токена доступа пользователя истекает через 60 дней. 

4
rvaldron

Токен доступа к странице Facebook очень похож на токен доступа пользователя, за исключением того, что «он олицетворяет пользователя» как администратора страницы и позволяет управлять им [требуется разрешение manage_page]. 

Если приложению предоставлено разрешение Offline_access, срок действия страницы access_token НЕ истекает (если пользователь не изменит свой пароль или не деавторизирует приложение вручную)

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

https://developers.facebook.com/tools/debug/

2
Robin
  • Маркер доступа к странице по умолчанию кратковременен, поэтому срок его действия истекает через 1 или 2 часа. Если вы хотите, чтобы он длился дольше, вам нужно продлить недолговечный токен доступа, чтобы он длился примерно 2 месяца.
  • Разрешение offline_access устарело.
  • Маркер доступа не истекает, когда пользователь изменяет пароль.

В другом вопросе я объясняю Как продлить токен доступа к странице .

1
FR6

Документация Facebook по этому вопросу (токены доступа к странице) не соответствует тому, что происходит на самом деле. В документации утверждается, что токены доступа к странице, полученные с помощью расширенных/долгоживущих токенов доступа пользователя, никогда не истекают. Однако в действительности срок действия этих токенов доступа к странице истекает через 60 дней.

Смотрите ошибку в Facebook: http://developers.facebook.com/bugs/461517520524921

1
rinogo

Смотрите это https://developers.facebook.com/roadmap/offline-access-removal/#page_access_token В соответствии с этим, когда вы получаете токен краткосрочного доступа и расширяете его на токен долгосрочного доступа, это не будет истекает только для токена доступа к странице. Смотрите сценарий 5: токен доступа к странице

1
Ananda Subasinghe

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

Проверьте мой блог и следуйте пошаговой инструкции по получению токена расширенного доступа и токенов доступа к фан-странице.

0
Thet Naing Swe