【问题标题】:LinkedIn OAuth a required parameter "client_id" is missingLinkedIn OAuth 缺少必需的参数“client_id”
【发布时间】:2017-01-15 03:16:09
【问题描述】:

我正在使用 LinkedIn API 并尝试发出请求,但是当我尝试获取我的访问令牌时,我的 json 打印中出现以下错误:

Array ( [error] => missing_parameter [error_description] => A required parameter "client_id" is missing )

这是我的代码:

<?php

    $url = parse_url("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
    parse_str($url['query'], $url);
        
    $code = $url['code'];

    $data = array("grant_type" => "authorization_code", 
                  "code" => $code,
                  "redirect_uri" => "REDIRECT_URI",
                  "client_id" => "SECRET",
                  "client_secret" => "SECRET"
              );
                
    $url2 = "https://www.linkedin.com/oauth/v2/accessToken";

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_URL, $url2);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    curl_close($curl);
        
    $result_array = json_decode($result, true);

    print_r($result_array);
        
    include('../twitter/navigatie.php');

    echo '<div class="container">';
    
    echo '';

    echo '</div>';

?>

【问题讨论】:

    标签: php json curl linkedin


    【解决方案1】:

    我发现了问题

    它需要在一个字符串中。

    这样:

    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    

    变成了这样:

    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
    

    Curl 或 LinkedIn 似乎对它有点敏感。

    【讨论】:

    • 这个帮助很大
    猜你喜欢
    • 1970-01-01
    • 2021-11-05
    • 2017-12-09
    • 2014-05-31
    • 1970-01-01
    • 2014-06-28
    • 2015-12-31
    • 1970-01-01
    • 2016-12-14
    相关资源
    最近更新 更多