2010-09-25 62 views
0

我正在使用Twitter API用于OAuth。Twitter API问题:使用GET的OAuth请求令牌工作,POST失败

我已经得到请求令牌操作使用GET没有任何问题的工作。

但是,当我使用POST做完全相同的事情时,它给了我错误'无法验证oauth签名'。

这里有各种卷曲选项我使用:

curl_setopt($ch, CURLOPT_URL, ''.$url_post_str.''); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_vars_arr); 
curl_setopt ($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); 

能否请您协助?

谢谢。

回答

1

我想了一会儿。

事实证明,因为我用一个数组为后场即

curl_setopt($ch, CURLOPT_POSTFIELDS, **$post_vars_arr**); 

形式的内容类型是多部分/格式数据,这是不被微博API的OAuth支持。

所以我不得不此阵内爆的查询字符串,并将其传递到同一curl_setopt即

curl_setopt($ch, CURLOPT_POSTFIELDS, **$post_vars_str**); 

据我了解,当您使用查询字符串,而不是一个数组,形式内容类型将为application/x-www-form-urlencoded(它由Twitter API支持)而不是multipart/form-data

而这就是我得到它的工作。我希望它能帮助别人。

+0

我正在使用c#。刚刚从V1升级到了twitter API的V1.1,我不得不添加“Content-Type:application/x-www-form-urlencoded; charset = UTF-8”头文件以使POSTs工作。 – 2013-02-16 20:56:04

相关问题