请求Instagram API使用cURL访问令牌
我正在尝试从Instagram API获取访问令牌这是文档的示例请求
curl -F 'client_id=CLIENT_ID'
-F 'client_secret=CLIENT_SECRET'
-F 'grant_type=authorization_code'
-F 'redirect_uri=AUTHORIZATION_REDIRECT_URI'
-F 'code=CODE'
https://api.instagram.com/oauth/access_token
这是我的代码
<body>
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.instagram.com/oauth/access_token");
curl_setopt($curl,CURLOPT_POST, true);
curl_setopt($curl,CURLOPT_POSTFIELDS, "client_id=MYID&
client_secret=MY_CLIENT_SECRET&grant_type=authorization_code&
redirect_uri=http://localhost/pruebainst/pruebas.php&code=".$_GET['code']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$output = curl_exec($curl);
curl_close($curl);
echo ($output);
?>
</body>
使用此代码时,我无法从cURL请求中获得任何内容
解决方案
使用此代码将获得重定向URL中的访问令牌。
$client_id = 'YOUR CLIENT ID';
$client_secret ='YOUR CLIENT SECRET';
$redirect_uri = 'YOUR REDIRECT URI';
$auth_request_url = 'https://api.instagram.com/oauth/authorize/?client_id='.$client_id.'&redirect_uri='.$redirect_uri .'&response_type=token';
/* Send user to authorisation */
header("Location: ".$auth_request_url);
另外,如果您希望以编程方式使用访问令牌,请使用此令牌
$client_id = 'YOUR CLIENT ID';
$client_secret ='YOUR CLIENT SECRET';
$redirect_uri = 'YOUR REDIRECT URI';
$code ='Enter your code manually';
$url = "https://api.instagram.com/oauth/access_token";
$access_token_parameters = array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'grant_type' => 'authorization_code',
'redirect_uri' => $redirect_uri,
'code' => $code
);
$curl = curl_init($url); // we init curl by passing the url
curl_setopt($curl,CURLOPT_POST,true); // to send a POST request
curl_setopt($curl,CURLOPT_POSTFIELDS,$access_token_parameters); // indicate the data to send
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // to stop cURL from verifying the peer's certificate.
$result = curl_exec($curl); // to perform the curl session
curl_close($curl); // to close the curl session
var_dump($result);
注意:$url和$reDirect_uri不同
相关文章