Я попытался использовать метод OAuth 2.0, который делает перенаправление на этот URL-адрес
https://www.facebook.com/dialog/oauth? client_id=YOUR_APP_ID &redirect_uri=YOUR_REDIRECT_URI &scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES &state=SOME_ARBITRARY_BUT_UNIQUE_STRING
Я успешно аутентифицировал пользователя, но теперь возникла основная проблема. Как получить доступ к данным, которые отправляются как ответ, все, что я вижу, это переменная GET
именем code
и некоторый длинный текст. Как конвертировать в пригодные для использования данные?
Я использую php для своего веб-сайта
Обменный код для токена доступа пользователя
Как только пользователь разрешил ваше приложение, вы должны сделать запрос на стороне сервера, чтобы обменять код, возвращенный выше для токена доступа пользователя.
https://graph.facebook.com/oauth/access_token? client_id=YOUR_APP_ID &redirect_uri=YOUR_REDIRECT_URI &client_secret=YOUR_APP_SECRET &code=CODE_GENERATED_BY_FACEBOOK
Параметр client_secret должен быть App Secret, как показано в настройках вашего приложения. Тело ответа на этот запрос будет строкой, закодированной в URL:
access_token=USER_ACESS_TOKEN&expires=NUMBER_OF_SECONDS_UNTIL_TOKEN_EXPIRES
Вы должны проанализировать эту строку и использовать значение access_token, чтобы делать запросы к API-интерфейсу Graph. Вы также должны сохранить токен доступа в своей базе данных, чтобы делать дальнейшие запросы к API без повторной аутентификации пользователя.
По достижении времени истечения токена доступа токен станет недействительным и больше не может использоваться в запросах API. Чтобы получить новый токен доступа пользователя, вы должны передать пользователя через этот поток снова. Однако, если пользователь не отменил авторизацию вашего приложения, и вы просите разрешения, кроме тех, которые пользователь уже предоставил вашему приложению, тогда диалог не будет отображаться, и пользователь будет прозрачно перенаправлен на ваш redirect_uri с новым кодом, который можно обменять на новый токен доступа пользователя.
Если есть проблема с обменом кодом для токена доступа пользователя, сервер авторизации выдаст HTTP 400 и вернет ошибку как объект JSON в теле ответа:
{ "error": { "type": "OAuthException", "message": "Error validating verification code." } }
Для дополнительной справки: http://developers.facebook.com/docs/authentication/server-side/
Выполнение запросов к API-интерфейсу Graph
Имея действующий токен доступа пользователя, вы можете делать запросы на чтение и запись данных из Graph API. Обычным первым запросом было бы получить основную информацию (включая идентификатор и имя) пользователя, который просто аутентифицировал ваше приложение:
https://graph.facebook.com/me?access_token=YOUR_USER_ACCESS_TOKEN
Существует официальный SDK для php из Facebook. Это облегчает жизнь.
Проверьте этот пример кода