2009-09-30 63 views
2

我目前停留在尝试使用PHP使用2条腿oAuth请求向服务的api发出请求。oAuth在PHP中提出两条腿请求

我使用PHP库在这里找到:http://code.google.com/p/oauth-php/而且似乎是绝对没有任何地方的文件在线使用这个库的2条腿的请求。

所以目前从我有以下细节服务:

  • $ CONSUMER_KEY - 需要是一个空字符串
  • $ CONSUMER_SECRET - 需要是一个空字符串
  • $的access_token - 我的登录名
  • $ access_token_secret - 您生成的应用程序的令牌

而且我希望能够做出一个请求:

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

要测试验证工作正常,所以我可以使用api的其余部分。

任何人有关于如何使用PHP库来实现这个任何指针?或者是否有更好的方法来进行这种简单的双腿呼叫?

帮助!? :)

+1

你是什么意思“必须是一个空字符串”为重点/秘诀是什么?您需要有一些价值才能签署请求。此外,您通常不会使用访问令牌/令牌密钥进行双向请求 - 您只需使用秘密签署参数 – madlep 2009-10-04 10:09:50

+0

我正在进行身份验证的服务需要空的使用者密钥和消费者密钥才能工作。我不确定为什么会出现这种情况,但我几乎已经解决了这些问题,希望能够在一两个小时内为我自己的问题提出一个答案...... – navitronic 2009-10-04 23:32:12

+0

找到了解决方案或者是OP遇到了问题一辆公交车? 1或2小时已经变成4个月:) – Ben 2010-02-24 22:53:09

回答

0

你只需要消费者密钥和消费者秘密作出的授权模式OAuth请求。

下载OAuthConsumer。 (注释掉类OAuthException 6-8行)

代码示例:

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);