如何通过OAuth2向新浪微博发布状态更新?

时间:2014-02-25 17:36:46

标签: php curl oauth-2.0 weibo sinaweibo

我正试图通过PHP / cURL和OAuth2向中国微博网站新浪微博发帖status update。 我遇到了这个错误:

  

{ “错误”:“AUTH   !zhcon失败”, “ERROR_CODE”:21301, “请求”: “/ 2 /状态/ update.json”}

我的PHP:

<?php
$ch = curl_init('https://api.weibo.com/2/statuses/update.json');
$headers = array(
'Authorization: Bearer '.$access_token,  
'Content-Type: application/x-www-form-urlencoded');
$postData = array('access_token' => '2.00x123456789', 'status' => 'hello');

curl_setopt_array($ch, array(
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => TRUE,
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $postData
));

$response = curl_exec($ch);
echo $response;

curl_close($ch);        
?>

我授权应用程序使用OAuth2范围all并且令牌有效。 可能是错误的原因是什么?

1 个答案:

答案 0 :(得分:2)

删除您的http标头

'Content-Type: application/x-www-form-urlencoded'

将帖子字段替换为:

CURLOPT_POSTFIELDS => http_build_query($postData)

现在快乐!