我有一个auth.php文件,该文件应向具有一些标头,数据和内容的API发送请求。
我尝试了Postman,并几乎立即给了我答复。
我复制了代码(PHP> cURL)并进行了尝试,它会持续waiting for MYPRIVATESITE.com
30秒(我将超时时间设置为该时间),然后是cURL ERROR: TIMED OUT
(或类似的东西) )。
我做错了什么?它可以与例如邮递员,那为什么不访问我的网站?
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://discordapp.com/api/v6/oauth2/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "client_id=PRIVATEID&client_secret=PRIVATEKEY&grant_type=authorization_code&code=$code&redirect_uri=https%3A%2F%2Fkanebot.epizy.com%2Fauth.php&scope=identify%20guilds&undefined=",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded",
"cache-control: no-cache"
)
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
注意:PRIVATEKEY
和PRIVATEID
在那,我只是删除它们,因为我不想让其他人偷它。它已定义,并且可以正常工作(阅读)。
$code
也已定义。
答案 0 :(得分:1)
您在&
和POSTFIELDS
之间的client_secret
中缺少grant_type
运算符
尝试添加&
,然后查看其是否正常工作(它将肯定会解决您遇到的问题之一)
client_id=PRIVATEID&client_secret=PRIVATEKEYgrant_type=authorization_code&code=$code&redirect_uri=https%3A%2F%2Fkanebot.epizy.com%2Fauth.php&scope=identify%20guilds&undefined=