Php 将OAuth1连接到HTTP\Client

Php 将OAuth1连接到HTTP\Client,php,laravel-5.1,guzzle6,Php,Laravel 5.1,Guzzle6,我正在尝试升级一个类,以便使用GuzzleHttp\Client使用twitter api搜索推文。我无法连接Oauth1。它与Guzzle3和OAuthPlugin配合使用效果很好 以下是代码块: $client = new Client(['base_uri' => 'https://api.twitter.com']); $auth = new Oauth1([ 'consumer_key' => Config::get

我正在尝试升级一个类,以便使用
GuzzleHttp\Client
使用twitter api搜索推文。我无法连接
Oauth1
。它与Guzzle3和OAuthPlugin配合使用效果很好

以下是代码块:

        $client = new Client(['base_uri' => 'https://api.twitter.com']);

        $auth = new Oauth1([
            'consumer_key' => Config::get('twitter.consumer_key'),
            'consumer_secret' => Config::get('twitter.consumer_secret'),
            'token' => Config::get('twitter.token'),
            'token_secret' => Config::get('twitter.token_secret')

        ]);

// Not sure if this is correct
$client->getEmitter()->attach($auth); // This is line 40 inside TwitterServiceProvider.php
我得到以下错误:

InvalidArgumentException in Client.php line 80: Magic request methods require a URI and optional options array

1. in Client.php line 80
2. at Client->__call('getEmitter', array()) in TwitterServiceProvider.php line 40
到目前为止,我认为,我应该使用。然而,还没有运气。

解决了

  • 我无法使用getEmitter使其工作。这可能不是正确的方法
  • 我切换到
    guzzle/oauth订户
    ,它现在可以工作了。这里有一个很好的例子:
  • base\u uri
    选项后面应该有一个斜杠
  • 新代码:

            $stack = HandlerStack::create();
    
            $auth = new Oauth1([
                'consumer_key' => Config::get('twitter.consumer_key'),
                'consumer_secret' => Config::get('twitter.consumer_secret'),
                'token' => Config::get('twitter.token'),
                'token_secret' => Config::get('twitter.token_secret')
    
            ]);
    
            $stack->push($auth);
    
            $client = new Client([
                'base_uri' => 'https://api.twitter.com/1.1/',
                'handler' => $stack,
                'auth' => 'oauth'
            ]);
    
    请求如下所示:

    $client->get('search/tweets.json', [
                                    'query' => ['q' => $query]
                            ]);
    
    参考事件系统已从Guzzle 6中完全移除。