Вопрос по facebook-graph-api, facebook – Срок действия маркеров доступа к Facebook истек по неизвестной причине

8

EDIT от @ avs099: Я начинаю награду за этот пост, поскольку у меня точно такая же проблема. Я суммирую проблему здесь и оставлю сам пост без каких-либо изменений внизу для справки.

Что мы имеем Жетон доступа к странице Facebook, полученный как описано здесь: Аутентификация как страница и который был продлен до 60 дней с новым Fb_exchange_token запрос

В чем проблема этот токен работает некоторое время - иногда я могу публиковать сотни фотографий на своей фан-странице в течение нескольких дней; иногда это буквально несколько фотографий - и тогда я начинаю получать либо

(OAuthException) Ошибка при аннулировании токена доступа: сеанс был признан недействительным, поскольку пользователь изменил пароль.

ил

(OAuthException) Ошибка при аннулировании токена доступа: сеанс не соответствует текущему сохраненному сеансу. Это может быть связано с тем, что пользователь изменил пароль со времени создания сеанса или Facebook изменил сеанс по соображениям безопасности.

исключения из Facebook - но, конечно, я не сменил пароль и не деавторизовал приложение.

Дополнительная информация Не уверен, что это важно, но:

Иногда я начинаю использовать токен через несколько дней после того, как запросил его у FacebookToken запрашивается (бэкэндом C #) с сервера, расположенного в другом географическом регионе, чем приложение для настольных компьютеров, которое публикует фотографии на фан-странице.Бываеткогда-т что несколько разных приложений для настольных компьютеров публикуют фотографии с разных компьютеров (т.е. разные IP-адреса, я думаю)

Кто-нибудь знает, что происходит и как решить эту проблему?

Спасибо

У меня есть приложение на Facebook, которое служит двум целям:

1) Позволяет пользователям подключаться к Facebook с моим сайтом. 2) Позволяет моему сайту публиковать на своих сайтах стену фан-страницы.

Что меня беспокоит, так это второе использование. Раньше я мог устанавливать разрешения для приложения на фан-странице, чтобы разрешить публикацию (через php sdk), не заботясь о маркере доступа. Теперь я создал несколько новых фан-страниц, и эта функциональность, кажется, была удалена. Итак, я прошёл весь процесс получения токена доступа (успешно) для пользователя (всегда меня или другого администратора моих фан-страниц Facebook) и использую этот токен для получения токенов доступа для фан-страниц, которыми я управляю (у меня есть разрешение manage_pages и других администраторов для страниц, которые я хочу опубликовать). Тем не менее, благодаря движку можно публиковать контент на моих фан-страницах, у токенов истек срок действия одного из двух сообщений об ошибках:

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

ил

OAuthException: ошибка при аннулировании токена доступа: сеанс был признан недействительным, поскольку пользователь изменил пароль.

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

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

Кто-нибудь знает, что происходит?

У кого-нибудь из пользователей была блокировка безопасности от Facebook? это циклически изменяет токены так же, как смена пароля Igy
@ Igy - извините за беспокойство, но есть ли у вас способ посмотреть на токен доступа и отследить его историю, и сообщить мне, почему он истек? Благодарность avs099
Мне никогда не удавалось полностью решить эту проблему, но, похоже, она, по крайней мере, утихла. Я настроил свой сервер для отправки мне электронных писем, если срок действия токенов истекает со ссылкой на страницу, которая генерирует новые токены и сохраняет их в БД. Хотя токены не загадочным образом истекли как минимум неделю. JewrassicPark
хмм ... что такое "блокировка безопасности"? Если я введу свой пароль неправильно - будет ли это так? Я не припоминаю какой-либо необычной активности - поэтому, скорее всего, ответ «нет». Если я дам вам токен с истекшим сроком действия, сможете ли вы отследить его историю и выяснить причину его отмены? avs099
У меня была такая же проблема в одном из моих приложений, и я сначала не мог найти способ ее решить. Самой большой проблемой было сообщение об ошибке Facebook, которое много раз не объясняло истинную причину. Например, я получил сообщение об ошибке «OAuthException: Ошибка аннулирования токена доступа: сеанс был признан недействительным, поскольку пользователь изменил пароль», когда действительной ошибкой было истечение срока действия токена. Моим решением было сначала проверить токен, попробовав graphQuery ' Graph.facebook.com / я? Access_token = маркер ... '. Если это не удалось, я расширил токен запросом fb_exchange_token. Stilero

Ваш Ответ

6   ответов
1
спасибо за ссылку, но я так не думаю ... я уверен, что токены действительны в течение более 2 часов. Проблема в том, почему они внезапно истекают - что является причиной этого .. avs099
2

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

0

стекает.

Одна из причин поиска: иногда мое приложение запрашивает новый токен, в то время как старый токен действителен, и FB возвращает ошибку, или я по какой-то причине не могу сохранить новый токен. После истечения срока действия этого старого токена может быть действителен только один токен для пары user-app.

0

и я решил ее «переустановкой приложения для пользователей приложений Facebook». это может помочь вам, если ничего не решит проблему.

Для этого:

ользователь @facebook, столкнувшийся с проблемой, переходит на страницу Faceboo он / она удаляет ваше приложение из списка приложений. Повторите попытку входа через Facebook SDK на Android.
0

чтобы запросить новый токен (или что угодно).

Я могу дать хорошее объяснение, но вы можете прочитать все это здесь:https: //developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens

вопрос был «почему токен истекает», а не «как с этим справиться» avs099
0

рофиля и разрешить его снова.

Похожие вопросы