我尝试在Twitter API中获取访问令牌: https://dev.twitter.com/oauth/application-only
我在PHP中使用cURL,但我没有得到结果!
我的代码:
$consumer_key = "XXXXXXXX";
$consumer_secret = "XXXXXXXX";
$base64 = base64_encode($consumer_key.':'.$consumer_secret);
$data = array("grant_type" => "client_credentials");
$header = array(
"Authorization" => "Basic $base64",
"Content-Type" => "application/x-www-form-urlencoded;charset=UTF-8",
"Accept-Encoding" => "gzip",
);
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, 'https://api.twitter.com/oauth2/token');
curl_setopt ($curlObj, CURLOPT_HTTPHEADER, $header);
curl_setopt($curlObj, CURLOPT_POST, 1);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($curlObj);
$json = json_decode($response, true);
curl_close($curlObj);
print_r($json);
问题在哪里?!
答案 0 :(得分:0)
尝试使用curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
答案 1 :(得分:0)
您正在错误地发送标题。标头数组不在键值对中。它只是一个简单的数组。如下所示:
$header = array(
"Authorization: Basic $base64",
"Content-Type: application/x-www-form-urlencoded;charset=UTF-8",
"Accept-Encoding: gzip",
);
对于帖子字段,使用http_build_query
上的函数$data
。
curl_setopt($curlObj, CURLOPT_POSTFIELDS, http_build_query($data));