2010-07-02 65 views
0

我已成功獲取access_token,因此它不是3腳過程的問題。Google Buzz API OAuth問題 - 使用Zend_OAuth(PHP)

,當我嘗試添加使用Buzz API開發一個新的職位/活動的問題開始......

這裏是我的要求:

POST /buzz/v1/activities/@me/@self?alt=json HTTP/1.1 
Host: www.googleapis.com 
Connection: close 
Accept-encoding: gzip, deflate 
User-Agent: Zend_Http_Client 
Content-Type: application/json 
Authorization: OAuth 
realm="",oauth_consumer_key="example.com",oauth_nonce="ce29b04ce6648fbb92efc8f 08c1c0091",oauth_signature_method="HMAC- 
SHA1",oauth_timestamp="1277934794",oauth_version="1.0",oauth_token="1%2FcBz o5ckGvCAm3wLWh1SDH3xQNoW-- 
yek1NVfUa1Qqns",oauth_signature="CUezSiMbvxyN1BTeb3uROlIx8gA%3D" 
Content-Length: 86 
{"data":{"object":{"type":"note","content":"posting on Buzz"}}} 

這裏是迴應:

{"error":{"errors":[{"message":"Unknown authorization header","locationType":"header","location":"Authorization"}],"code":401,"message":"Unknown authorization header"}} 

這裏是我的基礎字符串(簽名從中生成的字符串):

POST&https%3A%2F%2Fwww.googleapis.com%2Fbuzz%2Fv1%2Factivities%2F%40me 
%2F%40self&oauth_consumer_key%3Dexample.com%26oauth_nonce 
%3D50acc6b7ac48304ae9301134d6988cdb%26oauth_signature_method%3DHMAC- 
SHA1%26oauth_timestamp%3D1278065599%26oauth_token 
%3D1%252FcBzo5ckGvCAm3wLWh1SDH3xQNoW--yek1NVfUa1Qqns%26oauth_version 
%3D1.0 

我甚至試過這種其他的基本字符串(從alt = json的加入):

POST&https%3A%2F%2Fwww.googleapis.com%2Fbuzz%2Fv1%2Factivities%2F%40me 
    %2F%40self%3Falt%3Djson&oauth_consumer_key%3Dexample.com%26oauth_nonce 
    %3Dee8704244623bbcc860bf77bfcadeacc%26oauth_signature_method%3DHMAC- 
    SHA1%26oauth_timestamp%3D1278069221%26oauth_token 
    %3D1%252FcBzo5ckGvCAm3wLWh1SDH3xQNoW--yek1NVfUa1Qqns%26oauth_version 
    %3D1.0 

我已經試過幾乎所有得到這個工作 - 不知道爲什麼它總是說「未知授權頭'...與其他工作相比,標題看起來很好。

任何想法?

回答

0

您使用哪個端點來授權請求​​令牌?

developer's guide

重要提示:OAuth的過程 的一部分,您需要將用戶定向到 的谷歌授權服務 批准您的應用程序訪問。 Google Buzz要求您使用不同的授權服務 端點,位於 https://www.google.com/buzz/api/auth/OAuthAuthorizeToken.com/buzz/api/auth/OAuthAuthorizeToken

+0

是的,我正在使用正確的端點。 對不起,延期迴應 - 在國外。 :) – xil3 2010-08-02 17:40:18

+0

實際上,我的答案被延遲.. :)我剛剛進入了「buzz + oauth」業務今天,並尋找解決我的一些問題的第一個地方..痛苦的調試體驗。 ;) – parserr 2010-08-02 22:17:58

0

您應該使用GET或POST方法(取決於您使用的請求)。默認情況下,Zend使用標題方法。

$ client-> setMethod(Zend_Http_Client :: GET);

+0

是的,我已經通過setMethod嘗試了GET和POST。 – xil3 2010-12-15 22:30:34