Могу ли я использовать PHP PHP SDK для деавторизации моего приложения для конкретного пользователя, в основном мне нравится, что у меня есть переключатель, чтобы пользователь мог связать или отменить связь своей учетной записи facebook с моим сайтом, у меня есть работа с частью ссылки, теперь просто нужна часть отсоединения.
благодаря
Не использовать поддерживаемый в настоящее время Graph API: в настоящее время в API-интерфейсе Graph (или даже в устаревших API) отсутствует интерфейс для деаурации приложения. Пользователь должен явно сделать это самостоятельно через страницы настроек Facebook.
Однако…
Унаследованный REST api имеет http://developers.facebook.com/docs/reference/rest/auth.revokeAuthorization/ , который SOUNDS, как будто он делает то, что вы хотите.
Сообщите мне, если это сработает для вас: мне любопытно.
Теперь у Graph API есть способ сделать это: https://developers.facebook.com/docs/reference/api/user/#permissions
Удалить
Вы можете полностью отменить авторизацию приложения или просто отменить определенное разрешение от имени пользователя, отправив HTTP DELETE в USER_ID / разрешения или USER_ID / permissions / PERMISSION_NAME соответственно. Этот запрос должен быть сделан с действительным пользователем access_token или токеном доступа к приложениям для текущего приложения.
Используя графический API, это отлично работает:
$ret = $this->Facebook->api('/me/permissions', 'DELETE');
Обратите внимание, что Facebook в процессе снижения REST API и добавляет эквивалентную поддержку объекту User API Graph для метода auth.revokeAuthorization.
Для делингования или деавторизации пользователь, совершив вызов приложения:
$user_id = $this->facebook->getUser(); $access_token=$this->facebook->getAccessToken(); $result = $this->facebook->api(array( 'method' => 'auth.revokeAuthorization', 'uid' =>$user_id, 'access_token'=>$access_token ));
Используя JS API, приложение может быть деавторизировано следующим образом:
FB.api('/me/permissions', 'DELETE', function(res){ if(res === true){ console.log('app deauthorized'); }else if(res.error){ console.error(res.error.type + ': ' + res.error.message); }else{ console.log(res); } });
Или удалите определенное разрешение:
FB.api('/me/permissions/user_birthday', 'DELETE', function(res){ if(res === true){ console.log('permission removed'); }else if(res.error){ console.error(res.error.type + ': ' + res.error.message); }else{ console.log(res); } });
Если вы перейдете в Facebook Developer, затем выберите свое приложение, а затем в меню «Дополнительно» появится поле «Deauthorize Callback». Установите это как URL-адрес своего домена, который проверяется, когда пользователь деавторизован, есть некоторая документация по формату запрашиваемых здесь данных .