Я пытаюсь получить список курсов udemy с их партнерским API и PHP.
Я могу получить данные без проблем, если не использую json_decode. Когда я использую json_decode, я получаю эту ошибку.
'SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data'
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);
Начните отладку, выведя простой echo $result;, а затем покажите нам, что у вас получилось.
«Уловимая фатальная ошибка: объект класса stdClass не может быть преобразован в строку в /index.php в строке 31», которая нацелена на «echo $result;»
Теперь ставим echo $result;сразу после этой строки$result=curl_exec($ch); echo $result;
@TugceAksoz Вы должны повторить это до в json_decode, иначе он станет объектом...
Было бы полезно увидеть код javascript, на который указывает ошибка.
Никаких дополнительных ошибок не ожидается, предупреждение JSON Parse. Тем не менее, я вижу информацию о курсе udemy на вкладке данных.
@RiggsFolly 'неожиданный непробельный символ после данных JSON в строке 1 столбца 10235 данных JSON'
Пожалуйста, разместите вывод echo $result, написанный в нужном месте вашего кода.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я не получил никакой ошибки при запуске вашего кода. Вы получаете эту ошибку
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data'
Поскольку вы используете «header('Content-Type: application/json');» и вы, вероятно, используете Firefox, он будет думать, что весь контент является json, и проверит, есть ли с ним что-то не так.
Комментарий "header('Content-Type: application/json');" и вы получите свои данные.
Да, сейчас намного лучше!
Это ошибка javascript, а не php...