Задать вопрос
@lexstile

Получение токена для авторизации через фейсбук?

Пробую получить success token для авторизации, не выходит.
1. Пробую так:
$token = json_decode(file_get_contents(API_OAUTH_TOKEN_URL . '?client_id=' . CLIENT_ID . '&redirect_uri=' . REDIRECT_URI . '&client_secret=' . CLIENT_SECRET . '&code=' . $_GET['code']),true);

Результат:
Warning: file_get_contents(https://graph.facebook.com/oauth/access_token?...
failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in login.php on line 14

2. Делаю так:
$api_host = API_OAUTH_TOKEN_URL;
$access_token_parameters = array(
'client_id'                =>     CLIENT_ID,
'client_secret'            =>     CLIENT_SECRET,
'redirect_uri'             =>     REDIRECT_URI,
'code'                     =>     $_GET['code']
);
$jResult = $ins->getAccessTokenUrl($api_host, $access_token_parameters);

	public function getAccessTokenUrl($api_host, $access_token_parameters){
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $api_host);
		curl_setopt($ch, CURLOPT_POST,true); 
		curl_setopt($ch, CURLOPT_POSTFIELDS,$access_token_parameters); 
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ch, CURLOPT_TIMEOUT, 90);		
        $jsonData = json_decode(curl_exec($ch));
        if (!$jsonData) {
            exit('Не получилось получить токен.');
        }
        curl_close($ch);
		return $jsonData;
	}

Ничего не происходит.

Если переходить по адресу в ручном режиме, ответ:
{
   "error": {
      "message": "The request is invalid because the app is configured as a desktop app",
      "type": "OAuthException",
      "code": 1,
      "fbtrace_id": "FhvSAYwHN1M"
   }
}
  • Вопрос задан
  • 911 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Не нужно городить самодельные огороды, когда у Facebook уже есть готовый PHP-SDK.
См.
https://developers.facebook.com/docs/reference/php
https://developers.facebook.com/docs/php/howto/exa...
getjump.github.io/ru-php-the-right-way/#composer_%...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
juno124
@juno124
WEB разработчик DevOps
Если вы получили шибку с кодом 400 , значит какой то параметр вы передали не верно , о чем и будет говорить развернутое сообщение об ошибке от сервера facebook.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект