向 Discord 发出 php OAuth 请求
Posted
技术标签:
【中文标题】向 Discord 发出 php OAuth 请求【英文标题】:Making a php OAuth request to Discord 【发布时间】:2017-09-20 08:58:02 【问题描述】:苦苦挣扎了一阵子。试图从 discord 中获取我的令牌。
请告诉我哪里出错了。
<?php
ini_set('display_errors',1);
$code = '';
$code = $_GET['code'];
if(isset($code))
$postData = array(
'code' => $code,
'client_id' => "[omitted]",
'client_secret' => '[omitted]',
'redirect_uri' => '[omitted]'
);
// Create the context for the request
$context = stream_context_create(array(
'http' => array(
// http://www.php.net/manual/en/context.http.php
'method' => 'POST',
'content' => $postData,
'header' => "Authorization: Bot [omitted]\r\n".
"Content-Length: ".strlen($postData)."\r\n",
)
));
// Send the request
$response = file_get_contents('https://discordapp.com/api/oauth2/authorize', FALSE, $context);
echo $response;
else
echo '<a href="https://discordapp.com/oauth2/authorize?response_type=code&redirect_uri=[omitted]&scope=identify%20guilds&client_id=[omitted]">Login</a>';
我不断收到错误
警告:file_get_contents(https://discordapp.com/api/oauth2/authorize):打开流失败:HTTP 请求失败! HTTP/1.1 411 长度要求在 /index.php 第 27 行
【问题讨论】:
【参考方案1】:strlen 是否有可能在数组上失败?我见过其他人使用类似的东西
$postData = http_build_query(array('foo'=>'bar'))
将数组转换为可以在查询中使用的东西。
【讨论】:
以上是关于向 Discord 发出 php OAuth 请求的主要内容,如果未能解决你的问题,请参考以下文章
使用 Angular 向 facebook oauth 发出 CORS 问题