Discord Oauth2 中的 Curl 问题
Posted
技术标签:
【中文标题】Discord Oauth2 中的 Curl 问题【英文标题】:Problems with Curl in Discord Oauth2 【发布时间】:2019-05-14 11:51:15 【问题描述】:问题很简单。
当 oAuth2 代码发送到页面时。这个接收令牌 json 的 php 脚本不起作用。请帮帮我:c
$base64 = base64_encode($data['id'] . ':' . $data['secret']);
$info = curl_init();
curl_setopt_array($info, array(
CURLOPT_URL => "https://discordapp.com/api/oauth2/token?grant_type=authorization_code&code=" . $data['code'] . "&redirect_uri=" . urlencode($data['redirect']),
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic " . $base64,
'Content-Length: ' . strlen($base64)
),
CURLOPT_RETURNTRANSFER => true
));
$tinyresult = curl_exec($info);
curl_close($info);
return $tinyresult;
【问题讨论】:
如何它“不起作用”?你得到什么回应?$tinyresult
的值是多少?
结果什么都没有。响应只等待几秒钟来接收一个空页面
var_dump($tinyresult)
的输出是什么?这是在函数中吗,因为我注意到您正在使用 return
并且不要对响应执行任何操作,否则在 sn-p 中。
这是一个函数。 var_dump($tinyresult) 返回值 false
curl_error 告诉你什么?
【参考方案1】:
问题解决了:D
$info = curl_init();
curl_setopt_array($info, array(
CURLOPT_URL => "https://discordapp.com/api/oauth2/token",
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array(
"grant_type" => "authorization_code",
"client_id" => $data['id'],
"client_secret" => $data['secret'],
"redirect_uri" => $data['redirect'],
"code" => $data["code"],
),
CURLOPT_RETURNTRANSFER => true,
));
$tinyresult = curl_exec($info);
if ($tinyresult == false)
$tinyerror = curl_error($info);
else
$tinyerror = null;
$tinyresult = json_decode($tinyresult);
$httpcode = curl_getinfo($info, CURLINFO_HTTP_CODE);
curl_close($info);
return array(
"data" => $tinyresult,
"err" => $tinyerror,
"state" => $httpcode,
);
【讨论】:
以上是关于Discord Oauth2 中的 Curl 问题的主要内容,如果未能解决你的问题,请参考以下文章
Discord 使用 url-query 中的“代码”发送 Oauth2 重定向 url。如何在我的谷歌脚本中获取该代码
无法在 Electron 应用程序中使用 Discord OAuth2