2017-05-06 1 views
0

Je souhaite utiliser Twitter Api Streaming avec la requête de filtre.
Et après la documentation GuzzleHttp j'accéder à ceci:Autorisation requise sur Twitter Stream Api à l'aide de Guzzle PHP

<?php 

use GuzzleHttp\Client; 
use GuzzleHttp\HandlerStack; 
use GuzzleHttp\Subscriber\Oauth\Oauth1; 

$stack = HandlerStack::create(); 

$middleware = new Oauth1([ 
    'consumer_key' => 'my_key', 
    'consumer_secret' => 'my_secret', 
    'token'   => 'my_token', 
    'token_secret' => 'my_token_secret' 
]); 
$stack->push($middleware); 

$client = new Client([ 
    'base_uri' => 'https://stream.twitter.com/1.1/', 
    'handler' => $stack, 
    'auth' => 'oauth' 
]); 

$client->post('statuses/filter.json', [ 
    'form_params' => [ 
     'track' => 'some_word_to_track', 
    ], 
]); 

Mais lors de l'exécution de ce code, je reçois l'exception suivante:

PHP Fatal error: Uncaught GuzzleHttp\Exception\ClientException: 
Client error: 'POST https://stream.twitter.com/statuses/filter.json' 
resulted in a '401 Authorization Required' response 
in /Users/.../vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:111 


Conclusion:

  • Est-ce parce que je ne peux pas utiliser Abonné Oauth1 de GuzzleHttp avec Twitter streaming API?
  • Ou est-ce parce que j'ai raté quelque chose sur l'authentification ?

Répondre

0

Il semble que vous ne pas inclure l'option 'auth' => 'oauth' à vos demandes, comme le montre the docs:

// Set the "auth" request option to "oauth" to sign using oauth 
$res = $client->get('statuses/home_timeline.json', ['auth' => 'oauth']);