2017-05-06 20 views
0

フィルタクエリでTwitter Streaming APIを使用したいと思います。
そして、私はこのようにアクセスしていGuzzleHttpドキュメント以下:Guzzleを使用したTwitterストリームApiでの認証が必要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', 
    ], 
]); 

しかし、このコードを実行するときに、私は次の例外を取得しています:

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 


結論:

  • 私は使用できないためですか? GuzzleHttpのOauth1加入者 TwitterストリーミングAPI?
  • 認証で何か不足していますか?

答えて

0

the docsに示すように、あなたが、あなたのリクエストに'auth' => 'oauth'オプションが含まれていないようだ:

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