使用udemy api获取课程列表

时间:2019-02-12 12:26:36

标签: javascript php api curl

我正试图通过其附属API和PHP到达udemy课程列表。

如果我不使用json_decode',我可以毫无问题地获取数据。当我使用json_decode我收到此错误。

  

'SyntaxError:JSON.parse:第1行第1列的意外字符   JSON数据”

function getcourse($id)
{
    header('Content-Type: application/json');

    $url = "https://www.udemy.com/api-2.0/courses/$id?fields[course]=@all";
    //  Initiate curl
    $ch = curl_init();
    // Disable SSL verification
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    // Will return the response, if false it print the response
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // Set the url
    curl_setopt($ch, CURLOPT_URL,$url);
    // Execute
    $c_id = base64_encode('myclientid');
    $c_sid = base64_encode('myclientsecretid');

    curl_setopt($ch,CURLOPT_HTTPHEADER,array('X-Udemy-Client-Id: '.$c_id.'','X-Udemy-Client-Secret: '.$c_sid.'',"Authorization: base64 encoded value of client-id:client-secret","Accept: application/json, text/plain, */*"));
    curl_setopt($ch, CURLINFO_HEADER_OUT, true);
    $result=curl_exec($ch);
    echo curl_getinfo($ch, CURLINFO_HEADER_OUT);
    echo curl_getinfo($ch,CURLINFO_HTTP_CODE);
    // Closing
    curl_close($ch);


    $result = json_decode($result);
    return $result; 
}


$cdetail = getcourse(120042);
print_r($cdetail);

1 个答案:

答案 0 :(得分:1)

运行您的代码时没有任何错误。 您遇到此错误

  

SyntaxError:JSON.parse:JSON数据第1行第1列的意外字符'

因为您使用的是“ header('Content-Type:application / json');”,并且您可能使用的是Firefox,它将认为所有内容都是json,并且将验证其是否有问题

注释“ header('Content-Type:application / json');”即可获取数据。