Приложение Facebook (не пользователь) истекло срок действия токена - PullRequest
17 голосов
/ 26 января 2012

Срок действия маркеров доступа к приложению Facebook истек?Эти токены отличаются от токенов USER;они приобретаются следующим образом:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id={0}&client_secret={1})

, как описано в разделе «Вход в приложение» документа по адресу http://developers.facebook.com/docs/authentication/.

. Существуют ли обстоятельства, при которых они становятся недействительными?1008 * Примечание: это НЕ вопрос о токенах доступа пользователей (которые четко задокументированы).Был идентичный вопрос http://facebook.stackoverflow.com/questions/7322063/does-app-login-access-token-expire, неправильно закрытый как дубликат другого вопроса о токенах доступа USER.

Ответы [ 4 ]

30 голосов
/ 09 июня 2012

Согласно документации Facebook :

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

5 голосов
/ 22 мая 2012

Создать APP_ACCESS_TOKEN действительно легко.Вы можете использовать свои App ID/API Key и App secret

access_token = YOUR_APP_ID|YOUR_APP_SECRET

Пример: 1234587968 | bghyuifjk3438483249235903502035023504305

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

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

Я не знаю, будет ли использование метода OAuth для создания токена приложения.вызвать его истечение срока действия.Однако, если вы сканируете PHP SDK Facebook, вы можете заметить, что токен приложения с истекающим сроком действия создается путем объединения app_id и secret:

  /**
   * Returns the access token that should be used for logged out
   * users when no authorization code is available.
   *
   * @return string The application access token, useful for gathering
   *                public information about users and applications.
   */
  protected function getApplicationAccessToken() {
    return $this->appId.'|'.$this->apiSecret;
  }

ПРЕДУПРЕЖДЕНИЕ. Я бы никогда не использовал это в клиентском коде, как это было быопубликуйте секрет вашего приложения.Однако в среде доверенных серверов это выглядит как путь.

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

<APP_ID>/insights/application_active_users
0 голосов
/ 24 февраля 2013

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

"Чтобы обеспечить наилучшее взаимодействие с вашими пользователями, ваше приложение должно быть готово к отлову ошибок для указанных выше сценариев. Следующий код PHP показывает, как обрабатывать эти ошибки и получать новый токен доступа.

Когда вы перенаправляете пользователя в диалог авторизации, у пользователя не запрашиваются разрешения, если пользователь уже авторизовал ваше приложение. Facebook вернет вам действительный токен доступа без диалога с пользователем. Однако если пользователь отменил авторизацию вашего приложения, ему потребуется повторно авторизовать ваше приложение, чтобы вы получили access_token. "Ресурс: https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/

...