@r4gn4r0k

Почему Instagram API меняет code и token?

Здравствуйте. Я пытаюсь через скрипт получить access token, потому что если я получал его вручную, то через какое-то время он менялся.
Для получения токена мне нужны client_id, client_secret, redirect_uri, code.
1, 2 и 3 есть в приложении. Чтобы получить code перехожу по url https://www.instagram.com/oauth/authorize/?client_... и после редиректа забираю полученные данные. Но они каждый раз меняются спустя какое-то время и из-за этого у меня не получается ввести актуальные данные в PHP-код ниже.

Затем я пытаюсь получить access token следующим образом
$fields = array( 
'client_id' => 'МОЙ-CLIENT-ID', 
'client_secret' => 'МОЙ-CLIENT-SECRET', 
'grant_type' => 'authorization_code', 
'redirect_uri' => 'МОЙ-REDIRECT-URI', 
'code' => 'МОЙ-CODE' 
); 
$url = 'https://api.instagram.com/oauth/access_token';; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
curl_setopt($ch,CURLOPT_POST,true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
$result = curl_exec($ch); 
curl_close($ch); 
$result = json_decode($result); 
$token = $result->access_token; //your token


Можно ли получать CODE также посредством PHP, а не вручную?
Или мб, я не правильно все понимаю, тогда как правильно произвести получение access token'a?
  • Вопрос задан
  • 919 просмотров
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
меняет потому что это стандарт Oauth

обновленный получается , конечно же, скриптом
Ответ написан
opium
@opium
Просто люблю качественно работать
Если токен истек просто получите новый
Ответ написан
No_Bugs
@No_Bugs
Oauth предполагает запрос для получения нового token, вот только разработчики instagram об этом видимо не знают и не предоставили возможности получить его через запрос. Там у них написано про получение ключа на стороне сервера и на стороне клиента. Только в качестве сервера у них используется клиент, тобишь браузер для авторизации через логин и пароль пользователя.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы