2017-02-08 11 views
0

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

https://developers.facebook.com/tools/debug/accesstoken?version=v2.5&q={TOKEN}

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

Я могу программно (PHP) взять короткоживущий токен (1/2 часа) и продлить его до 60 дней, но я хотел бы в идеале получить токен с истекшим сроком действия.

Я думаю, я не спрашиваю, как мне это удалось, но я не могу найти никаких объяснений или документации или причин, почему я смог достичь этого для одного токена, но не для других.

Это что-то в самом приложении, когда оно было создано? Есть ли на самом деле способ получить не истекающий токен, хотя я следил за многими из онлайн-руководств, но может получить только 1/2-часовой токен, преобразованный в 60 дней?

ответ

1

Есть ли на самом деле способ получить никогда не истекающий лексема

Нет, не действительно. Даже то, что вы считаете, никогда не истекает токен может expire - f.e. если пользователь, создавший его, изменяет свой пароль учетной записи.

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

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

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


Теперь то, что вы видите с маркером здесь, является побочным эффектом, как Facebook реализовала расширенные токены страницы. У тех, у кого нет истечения срока действия по умолчанию, - но они должны быть недействительными, когда пользователь удаляется как администратор страницы. Поэтому они привязаны к пользовательскому токену, который использовался для запроса маркера страницы. Пользовательский токен становится недействительным - токен доступа к странице становится недействительным вместе с ним. А это, в свою очередь, требует, чтобы токен пользователя не истекал автоматически через 60 дней.

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

+0

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

+1

Да. Но опять же, не полагайтесь на это, чтобы всегда быть в будущем. – CBroe

+0

Понял, еще раз спасибо – omega1