2010-07-02 5 views
0

J'ai réussi à obtenir un access_token, donc ce n'est pas un problème avec le processus à 3 pattes.Problème OAuth de l'API Google Buzz - Utilisation de Zend_OAuth (PHP)

Le problème commence lorsque je tente d'ajouter un nouveau message/activité en utilisant l'API Buzz ...

Voici ma demande:

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"}}} 

Voici la réponse:

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

Et voici ma chaîne de base (la chaîne à partir de laquelle la signature est générée):

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 

J'ai même essayé cette autre chaîne de base (avec l'alt = JSON ajoutée):

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 

J'ai tout essayé à peu près pour obtenir ce travail - ne sais pas pourquoi il dit toujours « en-tête d'autorisation inconnue '... l'en-tête semble bien comparé à d'autres qui fonctionnent.

Des idées?

Répondre

0

quel point de terminaison avez-vous utilisé pour autoriser le jeton de demande?

developer's guide:

Important: Une partie du processus OAuth exige que vous diriger l'utilisateur vers le service Google Autorisation de approuver l'accès à votre application. Google Buzz requiert que vous utilisiez un point d'extrémité de service d'autorisation différent, situé au https://www.google.com/buzz/api/auth/OAuthAuthorizeToken.com/buzz/api/auth/OAuthAuthorizeToken.

+0

Oui, j'utilise le bon point de terminaison. Désolé pour la réponse différée - été à l'étranger. :) – xil3

+0

en fait, ma réponse a été retardée .. :) Je viens d'entrer dans "buzz + oauth" des affaires aujourd'hui et cherchait une solution à certains de mes problèmes en premier lieu .. douloureuse expérience de débogage. ;) – parserr

0

Vous devez utiliser la méthode GET ou POST (en fonction de la requête que vous utilisez). Par défaut, Zend utilise la méthode header.

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

+0

Oui, j'ai déjà essayé GET et POST via setMethod. – xil3