2

我正在使用 Guzzle 6 和OAuth 订阅者进行机器对机器的通信,与具有基本 uri https://foo.bar的 API 接口,供应商提供以下参数说明:

OAuth Bible之后,将暗示需要两条腿的 OAuth,因为我希望绕过手动授权重定向,但我不确定如何/在哪里设置客户端级别的请求令牌 URL 和访问令牌 URL。

我设置了一个简单的客户端,只使用消费者密钥和秘密,但这只允许部分 API 访问

$stack = HandlerStack::create();
$middleware = new Oauth1([
        'consumer_key' => $params['consumerKey'],
        'consumer_secret' => $params['consumerSecret'],
        'token_secret' => false,
    ]);

$stack->push($middleware);
$client=new Client([
        'base_uri' => $params['baseUri'],
        'handler' => $stack,
        'auth' => 'oauth'
]);

//Leg #1: Obtain application request token  
$requestTokenResponse = $client->post('/oauth/request')->getBody()->getContents();
/* requestTokenResponse now contains in a single string variable with value: 
 *'oauth_token=4plbxbL9Um9J6IN7XLDy5DYDwJlrISQ5QMqi43JaXaQ&
 * oauth_callback_confirmed=true&
 * oauth_token_secret=JqCC51ja3Q2yklV2xyphUromHGhIwWjgcx%40hXvO3JosbkYWKVr'
*/
$requestTokenParams = [];
foreach (explode('&',$requestTokenResponse) as $queryString) {
        $query = explode('=', $queryString);
        $requestTokenParams[$query[0]] = $query[1];
}
//Leg #2 Starts Here

//Dynamically add middleware params (setting token and token_secret?) 

//Obtain access token after middleware update
    $accessTokenResponse = $client->post('/oauth/access')->getBody()->getContents();

我不知道现在如何推进:

似乎下一篇文章需要设置令牌和令牌_secret,要求我在下一次调用之前修改中间件参数,这似乎不起作用和/或手动推送到处理程序堆栈。

请帮助,在此先感谢

4

0 回答 0