【问题标题】:Instagram Basic Display API returning errorInstagram 基本显示 API 返回错误
【发布时间】:2021-04-07 00:08:14
【问题描述】:

我正在尝试从 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 中它可以工作。这是为什么它不起作用的明确线索......

我做错了什么?

【问题讨论】:

  • cURL 发送multipart/form-data,如果您将数组传递给CURLOPT_POSTFIELDS

标签: php curl instagram instagram-api


【解决方案1】:

变化:

$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
        );

它会起作用的。

【讨论】:

  • 太棒了!效果很好,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2020-06-13
  • 2020-05-05
  • 2021-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多