Подтвердить что ты не робот

Как я могу заставить токен доступа к facebook истечь?

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

Аутентификация в качестве приложения позволяет получить токен доступа, который позволяет вам запрашивать API Facebook от имени приложения, а не пользователя. [...] Точки доступа к приложениям также могут использоваться для публикации контента в Facebook от имени пользователя, предоставившего разрешение на публикацию для вашего приложения.

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

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

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

Что дает? Как я могу получить expired access_token, чтобы проверить свой токен доступа к приложениям?

Изменить: я думаю, что это сработает. Я создал токен доступа к приложениям и использовал поток CLIENT-SIDE, чтобы получить токен доступа пользователя, который длился всего 2 часа, поэтому я мог просто ждать, пока он истечет. После истечения срока действия я использовал проводник Graph API, чтобы попытаться опубликовать обновление состояния, которое не сообщило мне, когда мой токен истек. Затем я попробовал одно и то же действие, используя мой токен приложения, который преуспел.

4b9b3361

Ответ 1

Это должно работать, проверьте ниже.

Недействительный (ака выйдите из системы) ваш токен; сделать HTTP GET-вызов этой конечной точке;

https://api.facebook.com/restserver.php?method=auth.expireSession&format=json&access_token=<access_token>

p.s. мой ответ с 2012 года... С тех пор Facebook API развился со многими серьезными изменениями. Более надежно читать док-код разработчика up2date Facebook

Ответ 2

Но он говорит прямо в документации, сразу после последней строки, которую вы цитировали:

Точки доступа к приложениям обычно не истекают. После создания они действительный неопределенно. Однако, если вам нужно аннулировать приложение Токен доступа по какой-либо причине, вы можете reset ваш секрет приложения в своем настройки приложения. Когда ваш App Secret будет reset, вам нужно будет выполните следующие шаги, чтобы создать новый токен доступа к приложениям.

Итак, для ваших целей тестирования reset секретный ключ приложения.


Изменить

О, я совершенно неправильно вас понял.
Легче аннулировать токен пользователя, вы просто используете соединение me/permissions с запросом DELETE.

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

Ответ 3

Как и ответ @guleryuz, но по праву:

Учитывая действительный access_token ${token}:

$ curl -X GET "https://graph.facebook.com/v2.7/me/permissions?access_token=${token}"
{"data":[{"permission":"user_friends","status":"granted"},{"permission":"email","status":"granted"},{"permission":"manage_pages","status":"granted"},{"permission":"business_management","status":"granted"},{"permission":"pages_messaging","status":"granted"},{"permission":"pages_messaging_phone_number","status":"granted"},{"permission":"public_profile","status":"granted"}]}

Отменить запрос:

$ curl -X DELETE "https://graph.facebook.com/v2.7/me/permissions?access_token=${token}"
{"success":true}

Проверить отмену:

$ curl -X GET "https://graph.facebook.com/v2.7/me/permissions?access_token=${token}"
{"error":{"message":"Error validating access token: The session was invalidated explicitly using an API call.","type":"OAuthException","code":190,"error_subcode":466,"fbtrace_id":"E2UhrNzyyzZ"}}

Ответ 4

Ответы, опубликованные здесь, устарели. Чтобы заставить токен истечь: войдите в свою учетную запись на facebook, перейдите в "Настройки", затем нажмите "Приложения" в левой части страницы

Выбор параметров

Удалите приложение:

введите описание изображения здесь

Это заставит токен истекать.

Ответ 5

Для разрешений просмотра

https://graph.facebook.com/v2.7/{userID}/permissions?access_token={acessToken}

Для разрешений на удаление добавьте "method=delete" до &access_token=

https://graph.facebook.com/v2.7/{userID}/permissions?method=delete&access_token={acessToken}

Ответ 6

вы можете попробовать воспроизвести поведение, изменив свой пароль в facebook