doulangbizhan5160 2015-08-11 21:36 采纳率: 100%
浏览 57
已采纳

流式传输包括受保护的Twitter时间线

I'm creating a simple Twitter app where I want to stream the timeline of the logged in user, but I can't figure out the right way.

With hard coded parameters it works fine, but I don't know how should I pass the logged in user's (token, who they are following) to the stream processor (which is running separately, in terminal), which checks the right timeline and returns it.

I also would like to get the tweets of the protected people followed by the user, but Stream API doesn't support that.

I'm using the Impensavel\Floodgate library, and, and my simple hard coded classes looks like this:

class Streaming extends Floodgate
{
    /**
     * {@inheritDoc}
     */
    public function getParameters()
    {
        return [
            'follow' => 83408038
        ];
    }
}

This starts the actual requests, I just made a Symfony command out of it:

class StreamCommand extends ContainerAwareCommand
{

 protected function configure()
    {
        $this->setName('stream:start');
    }
 protected function execute(InputInterface $input, OutputInterface    $output)
  {
    $config = [
        'consumer_key' => '**',
        'consumer_secret' => '**',
        'token' => '**',
        'token_secret' => '**',
    ];

    $stream = Streaming::create($config);

    $stream->filter(function ($data) {
        if(isset($data->text)){
            echo $data->text . PHP_EOL;
        }
    });
  }
}

With what kind of logic could I achieve the streaming of each user's own timeline, including protected users?

  • 写回答

1条回答 默认 最新

  • dongshanfan1941 2015-08-19 06:24
    关注

    At the end, I managed to solve this problem with using ReactPHP to run the stream processes, and Ratchet to communicate with the client side.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?