2012-02-22 4 views
2

Это токен доступа, связанный с моим приложением . - вещь, которая возвращается с https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=APP_ID&client_secret=APP_SECRET. Могу ли я получить это один раз от FB и сохранить его где-нибудь для будущего использования, или мне нужно обновлять его на регулярной основе?Срок действия токена доступа приложения Facebook истекает?

ответ

-3

Для каждого токена пользователя (это то, что вы получаете по вашей ссылке), есть срок годности. Возьмите один из этих жетонов до https://developers.facebook.com/tools/debug и отлаживайте его. Вы увидите, что обычно они истекают в течение 60 минут или около того.

Чтобы расширить этот токен пользователя, вызовите команду обмена (https://developers.facebook.com/docs/offline-access-deprecation/), чтобы получить 60-дневный токен. Этот токен пользователя должен оставаться в силе (не истек), чтобы сделать это.

+0

Не токен пользователя, токен приложения, он говорит [здесь] (http://developers.facebook.com/docs/authentication/#applogin): * «В дополнение к пользовательскому входу, Facebook Платформа поддерживает вход в приложение, используя OAuth 2.0 Клиентский учетный поток. App Login позволяет вам выполнять различные административные действия для вашего приложения, такие как получение данных Insights или утверждение запросов ». * –

+0

Вы линили токен доступа приложения с помощью инструмента отладки? Что он сказал для истечения срока? – DMCS

+0

Если я попытаюсь получить это сообщение: «* URL-адреса Facebook не отключаются от этого отладчика. Попробуйте свой собственный. * ", Однако [Access Token Debugger] (https://developers.facebook.com/tools/debug/access_token/) имеет информацию о токене доступа к приложениям, и у него есть срок годности, но когда Я закручиваю этот url, я получаю только токен доступа, без истечения срока действия. –

0

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

Но почему это имеет значение? процесс аутентификации приложения намного проще, чем тот, который есть у пользователей, поэтому просто сохраните токен где-нибудь (db, memory), а затем попробуйте api-вызов, если он не удастся просто выдать один вызов для получения нового токена, сохраните его и продолжите как обычный.

+0

Как вы можете проверить код ошибки + сообщение для access_token, так как он не истекает в настоящее время? Как вы узнали, что ошибка из вызова связана с приложением access_token? – Trace

+1

@ KimGysen Я не занимаюсь какой-либо работой facebook api в течение нескольких лет (ответ 4+ лет), но, глядя на документацию по [Отладка и обработка ошибок> Истекшие или недействительные токены доступа] (https://developers.facebook.com/docs/facebook-login/access-tokens/debugging-and-error-handling#expiredtokens) кажется, что код ** '190' ** и тип **' OAuthException' * *. –

0

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

  1. Получить пользователь
  2. Обмен токена пользователя долгоживущего маркера (Действительно для 30days)
  3. Получить маркер страницы с этим пользователем маркером (Этот маркер страницы не будет истекать)

При проверке маркеров вы получили, проверить его на Debugger. Теперь вы увидите «Истекает никогда».

Документация по Facebook Developers, Сценарий 5: Страница доступа токены

0

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

Моего доступ приложения лексемы затем сразу изменился, и когда я пытаюсь использовать старый я получаю 400 ошибку в HTTP с телом сообщения ...

{ «error»: {«message»: «Недопустимая подпись токена доступа OAuth.», «type»: «OAuthException», «code»: 190}}

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

Смежные вопросы