1

我想将 Twitter Streaming Api 与过滤器查询一起使用。
并遵循我正在访问的 GuzzleHttp 文档,如下所示:

<?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 一起使用吗?
  • 还是因为我在身份验证上遗漏了一些东西?
4

0 回答 0