2010-09-25 123 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