[英]"Invalid platform app" error using Instagram Basic Display API
[英]Instagram Basic Display API returning error
我正在尝试从 Instagram 的基本显示 API 请求访问令牌,但它给了我这个错误:
{"error_type": "OAuthException", "code": 400, "error_message": "Missing required field client_id"}
这很奇怪,因为我提供了一个 client_id。 这是我的代码:
$client_id = 'xxx';
$client_secret = 'xxx';
$redirect_uri = 'xxx';
if (isset($_GET['code'])) {
$code = $_GET['code'];
echo $code;
$url = 'https://api.instagram.com/oauth/access_token';
$data = array([
'client_id' => $client_id,
'client_secret' => $client_secret,
'grant_type' => 'authorization_code',
'redirect_uri' => $redirect_uri,
'code' => $code
]);
$curl = curl_init($url);
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // to stop cURL from verifying the peer's certificate.
$result = curl_exec($curl);
curl_close($curl);
echo $result;
}else{
echo '<a href="https://api.instagram.com/oauth/authorize?client_id='.$client_id.'&redirect_uri='.$redirect_uri.'&scope=user_profile,user_media&response_type=code">connect your instagram</a>';
}
编辑:
当我在 Postman 中运行此测试时,如果我将数据放入参数中,我会得到相同的错误,但如果我将它放入 body / x-www-form-urlencoded 中它可以工作。 这是为什么它不起作用的明确线索......
我究竟做错了什么?
改变:
$data = array([
'client_id' => $client_id,
'client_secret' => $client_secret,
'grant_type' => 'authorization_code',
'redirect_uri' => $redirect_uri,
'code' => $code
]);
至:
$data = array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'grant_type' => 'authorization_code',
'redirect_uri' => $redirect_uri,
'code' => $code
);
它会起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.