Согласно Instagram API к этому приведен пример запроса на получение access_token
.
curl -F 'client_id=XXXXXX' \
-F 'client_secret=XXXXXX' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=XXXXXX' \
-F 'code=XXXXXX' \
https://api.instagram.com/oauth/access_token
Если я запускаю это в терминале, я могу получить результат, который выглядит примерно так:
{
"access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d",
"user": {
"id": "1574083",
"username": "snoopdogg",
"full_name": "Snoop Dogg",
"profile_picture": "..."
}
}
Проблема в том, что он не работает с реакции-нативной.
Я использую этот код для отправки запроса о реагировании на родную систему:
fetch('https://api.instagram.com/oauth/access_token', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
client_id: 'XXXXXX',
client_secret: 'XXXXXX',
grant_type: 'authorization_code',
redirect_uri: 'XXXXXX',
code: 'XXXXXX'
}),
})
.then(res => res.json())
.then(obj => {
console.error(obj);
})
.catch((error) => {
console.error(error);
})
И я продолжаю получать ответ You must provide a client_id.
Я пытался создать jQuery-код этого запроса, который РАБОТАЕТ .
$.ajax({
type: "POST",
url: "https://api.instagram.com/oauth/access_token",
data: {
client_id: 'XXXXXX',
client_secret: 'XXXXXX',
grant_type: 'authorization_code',
redirect_uri: 'XXXXXX',
code: 'XXXXXX'
},
success: function(html) {
console.error(html)
},
error: function(html) {
console.error(html)
}
});
Рубиновый код с одним вкладышем, который также РАБОТАЕТ
Net::HTTP.post_form(URI.parse('https://api.instagram.com/oauth/access_token'), {'client_id': 'XXXXXX','client_secret': 'XXXXXX','grant_type': 'authorization_code','redirect_uri': 'XXXXXX','code': 'XXXXXX'}).body
Можете ли вы определить, что не так с моим кодом? Он работает с JQuery.