Присоединение OAuth1 к GuzzleHttp \ Client

Я пытаюсь обновить класс для использования GuzzleHttp\Client искать твиты используя твиттер 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

P.S Пока я понял, я должен использовать https://github.com/guzzle/oauth-subscriber. Однако пока не повезло.

4

Решение

Решено.

  1. Я не мог заставить его работать, используя getEmitter. Это не может быть правильным подходом.
  2. Я переключился на guzzle/oauth-subscriber и это работает сейчас. Вот хороший пример: https://github.com/guzzle/oauth-subscriber
  3. base_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]
]);
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]