我正在尝试通过 curl 将 OAuth 代码与授权令牌交换。服务器 API 文档说,我应该发送 POST 数据,并且我正在这样做:
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return result
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); // disallow redirection
curl_setopt($ch, CURLOPT_TIMEOUT, 5); // timeout 5s
curl_setopt($ch, CURLOPT_URL, $url); // OAuth access token url
curl_setopt($ch, CURLOPT_POST, 1); // send via POST
// I have prepared query arguments as an array $args
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($args));
// Turning on some debug info
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
// Executing curl
$data = curl_exec($ch);
问题出在服务器响应中。我总是收到 OAuth 错误:unsupported_grant_type。所有文档来源都说参数 grant_type 必须设置为“authorization_code”值(在此 OAuth 步骤的所有情况下),但无论如何它都不起作用。任何想法?