doulangbizhan5160
doulangbizhan5160
采纳率100%
2015-08-11 21:36

流式传输包括受保护的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 dongshanfan1941 6年前

    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.

    点赞 评论 复制链接分享