Esempio n. 1
0
const CONSUMER_SECRET = '';
const TOKEN = '';
const TOKEN_SECRET = '';
function generateHeader($method, $url, $params = null)
{
    $consumer = new JacobKiers\OAuth\Consumer\Consumer(CONSUMER_KEY, CONSUMER_SECRET);
    $token = new JacobKiers\OAuth\Token\Token(TOKEN, TOKEN_SECRET);
    $oauthRequest = JacobKiers\OAuth\Request\Request::fromConsumerAndToken($consumer, $token, $method, $url, $params);
    $oauthRequest->signRequest(new JacobKiers\OAuth\SignatureMethod\HmacSha1(), $consumer, $token);
    return trim(substr($oauthRequest->toHeader(), 15));
}
$postData = 'follow=' . TWITTER_USER_ID;
$method = 'POST';
$url = 'https://stream.twitter.com/1.1/statuses/filter.json';
$headers = ['Authorization' => generateHeader($method, $url, ['follow' => TWITTER_USER_ID]), 'Content-Type' => 'application/x-www-form-urlencoded', 'Content-Length' => strlen($postData)];
$source = \Rx\React\Http::post($url, $postData, $headers, '1.1')->streamResults()->share();
$connected = $source->take(1)->doOnNext(function () {
    echo 'Connected to twitter, listening in on stream:', PHP_EOL;
});
$allTweets = $connected->merge($source)->lift(function () {
    return new \Rx\Extra\Operator\CutOperator(PHP_EOL);
})->filter(function ($tweet) {
    return strlen(trim($tweet)) > 0;
})->map(function ($tweet) {
    return json_decode($tweet);
});
$endTwitterStream = $allTweets->filter(function ($tweet) {
    return is_object($tweet);
})->filter(function ($tweet) {
    return trim($tweet->text) == 'exit();';
})->doOnNext(function ($twitter) {
Esempio n. 2
0
<?php

include __DIR__ . '/../../vendor/autoload.php';
$postData = json_encode(["test" => "data"]);
$headers = ['Content-Type' => 'application/json'];
$source = \Rx\React\Http::post('https://www.example.com/', $postData, $headers);
$source->subscribeCallback(function ($data) {
    echo $data, PHP_EOL;
}, function (\Exception $e) {
    echo $e->getMessage(), PHP_EOL;
}, function () {
    echo "completed", PHP_EOL;
});