Срок действия токенов offline_access истек при выходе? - PullRequest
1 голос
/ 24 января 2012

У меня есть несколько сценариев PHP, которые извлекают данные из моего профиля в Facebook.

Я настроил их с помощью токена доступа, который я взял из обозревателя графиков.

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

Я гарантировал, что при создании токенов я запросил расширенное разрешение offline_access.

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

Насколько я понимаю, токен offline_access переживает выход из системы, но не изменяет пароль.

Что-то изменилось в этом отношении?

Ответы [ 2 ]

2 голосов
/ 26 января 2012

Я провел еще несколько исследований по этому вопросу.

FB отвергают разрешение offline_access.Это означает, что больше не будет возможности получить токен доступа, который дает вашему приложению открытое разрешение на запрос данных пользователя.

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

См .: https://developers.facebook.com/docs/offline-access-deprecation/

В моем собственном конкретном примере, где я использовал токен, полученный из Graph Explorer в PHP-скрипте, который запрашивал Graph с помощью cURL (т.е. независимо от сеанса пользователя на FB), я не могу этого сделать.

Graph Explorer - это отдельное приложение, и кажется, что в последние несколько дней он включил миграцию deprecate_offline_access в своих настройках, что означает, что существующие маркеры offline_access, полученные через Graph Explorer, теперь теряют силу при выходе из системы.

Кроме того, я не могу выполнить запрос в своем скрипте для замены токена, так как для этого требуется секретное приложение для приложения Graph Explorer, которого у меня нет.

Таким образом, существующиеТокены offline_access, полученные как часть стандартного процесса аутентификации, должны продолжать работать, но токены offline_access, полученные с помощью Graph Explorer не будет.

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

Я вижу в этом логику, но это немного ключ в работах для заданий cron и т. Д.

1 голос
/ 24 января 2012

Я мог бы подозревать, что с изменением (в то время как код Facebook написан для обработки как старых, так и новых способов), возможно, возникла ошибка. Если вы можете воспроизвести эту проблему, то она должна быть зарегистрирована как дефект в Facebook на http://developers.facebook.com/bugs.

Я проверил, используя токен базового доступа с новым приложением. Я только просил офлайн разрешения. Я проверил токен в линте, и он говорит, что все в порядке. Я вышел из фейсбука, потом вернулся. Затем перепроверил токен. И, конечно же, он был признан недействительным. В настройках моего приложения не рекомендуется использовать offline_access для Enabled.

Для моего следующего теста я отключил его и проверил снова. Конечно же, Facebook аннулировал этот токен.

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

Я также протестировал приложение, которое я создал во время прошлогодней конференции F8, и оно также работало корректно (без учета автономного токена), когда я вышел из Facebook.

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

...