2009-09-30 4 views
2

Je suis actuellement bloqué en essayant de faire des requêtes à l'API d'un service en utilisant une requête oAuth à 2 pattes en utilisant PHP.oAuth en PHP pour faire une requête à 2 pattes

J'utilise la bibliothèque PHP trouvée ici: http://code.google.com/p/oauth-php/ et il semble qu'il n'y ait absolument aucune documentation nulle part en ligne pour utiliser cette bibliothèque pour une requête à 2 pattes.

donc actuellement du service que j'ai les détails suivants:

  • $ consumer_key-doit être une chaîne vide
  • $ consumer_secret - doit être une chaîne vide
  • $ access_token - mon nom de connexion
  • $ access_token_secret-votre application générée jeton

Et je veux être en mesure de faire une demande à:

http://foo.com/api/test/whoami 

Pour tester que l'authentification fonctionne correctement, donc je peut utiliser le reste de l'API.

Quelqu'un at-il des pointeurs sur la façon d'utiliser cette bibliothèque PHP pour y parvenir? ou y at-il de meilleures méthodes pour un simple appel à 2 pattes comme celui-ci?

Aide !? :)

+1

Que voulez-vous dire par « doit être une chaîne vide » pour la clé/secret? Vous avez besoin d'une valeur pour pouvoir signer la demande. De plus, vous n'utilisez généralement pas le secret de jeton/jeton d'accès pour une requête à 2 pattes - vous n'avez qu'à signer les paramètres avec le secret – madlep

+0

Le service contre lequel je m'authentifie nécessite une clé de consommateur vide et un secret de consommateur. Je ne suis pas sûr pourquoi c'est le cas, j'ai presque résolu les problèmes, j'espère pouvoir formuler une réponse à ma propre question dans une heure ou deux ... – navitronic

+0

Est-ce qu'une solution a été trouvée ou a été l'OP frappé par un bus? 1 ou 2 heures s'est transformé en 4 mois :) – Ben

Répondre

0

Vous avez juste besoin de la clé et le code secret des consommateurs à faire autorisé les demandes OAuth 2 pattes.

Télécharger OAuthConsumer. (Commenter les lignes de classe OAuthException 6-8)

code exemple:

require_once 'OAuth.php'; 

$signatureMethod = new OAuthSignatureMethod_HMAC_SHA1(); 
$consumerKey = 'abc'; 
$consumerSecret = 'def'; 
$httpMethod = 'GET'; 
$url = 'http://path/to/endpoint'; 
$requestFields = array(); 

$oauthConsumer = new OAuthConsumer($consumerKey, $consumerSecret, NULL); 
$oauthRequest = OAuthRequest::from_consumer_and_token($oauthConsumer, NULL, $httpMethod, $url, $requestFields); 
$oauthRequest->sign_request($signatureMethod, $oauthConsumer, NULL); 
Questions connexes