gpt4 book ai didi

php - 如何在 PHP 中为新的 Udemy 2 API 身份验证添加 curl HTTP header ?

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:00 26 4
gpt4 key购买 nike

Udemy 已将其 API 从 1.1 更改为 2,并添加了一个身份验证步骤,这基本上关闭了我使用 1.1 api 提取数据的网站。我找到了下面的示例并让它在过去几个月内正常工作,但随着更改,现在 Udemy 声明在 4 月 20 日之后他们将不再支持 1.1,我需要修复此问题。

function get_data($url) {
$ch = curl_init();
$timeout = 5;
$udemy_client_id = 'xxxxx';
$udemy_client_secret = 'xxxxx';
HTTP Authorization
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'X-Udemy-Client-Id: '.$udemy_client_id,
'X-Udemy-Client-Secret: '.$udemy_client_secret
));
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

$returned_content = get_data('https://www.udemy.com/api-1.1/courses/'.$id.'?fields[course]=@min,tagTitles,description,-images');


echo $returned_content;

1.1 只要求提供 client_id 和 client_secret 值,但现在添加了必须有 base64 编码的 HTTP 授权。 Udemy 示例:

curl --user {YOUR_CLIENT_ID}:{YOUR_CLIENT_SECRET} https://www.udemy.com/api-2.0/courses

curl -H "Authorization: Basic {BASE64_ENCODED_CLIENT_ID:CLIENT_SECRET}" https://www.udemy.com/api-2.0/courses

谁能告诉我如何将新的 base64 编码的 HTTP 授权包含到我上面的代码中,或者我是否需要编写新代码?

最佳答案

嘿,我已经解决了我的问题。 Udemy 使用 2 个不同的 client_id。 1 用于 api 2.0,另一个用于访问内容。我的脚本加载了 2 个不同的 client_id,而我使用的是用于访问内容的,这反过来又是不正确的。我必须使用第一个才能使 api 工作(api 2 的 client_id)。

是的,你必须将client_id 和client_secret 进行base64 转换。我的代码在 python 中。不过不确定您是如何在 php 中执行此操作的。

关于php - 如何在 PHP 中为新的 Udemy 2 API 身份验证添加 curl HTTP header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29347859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com