Проблема OAuth API Google Buzz - использование Zend_OAuth (PHP) - PullRequest
0 голосов
/ 02 июля 2010

Я успешно получил access_token, так что это не проблема с 3-сторонним процессом.

Проблема начинается, когда я пытаюсь добавить новый пост / действие с помощью API Buzz ...

Вот мой запрос:

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

Я попробовал почти все, чтобы заставить это работать - не знаю почемуон всегда говорит «Неизвестный заголовок авторизации» ... заголовок выглядит отлично по сравнению с другими, которые работают.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2010

Вы должны использовать метод GET или POST (в зависимости от того, какой запрос вы используете).По умолчанию Zend использует метод заголовка.

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

0 голосов
/ 02 августа 2010

какую конечную точку вы использовали для авторизации токена запроса?

Руководство разработчика :

Важно: часть процесса OAuth требует, чтобы вы направили пользователя к служба авторизации Google для утвердить доступ к вашей заявке. Google Buzz требует, чтобы вы использовали другой сервис авторизации конечная точка, расположенная в https://www.google.com/buzz/api/auth/OAuthAuthorizeToken.com/buzz/api/auth/OAuthAuthorizeToken.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...