2017 © Pedro Peláez
 

library chirp

Cache for Twitter using MongoDB

image

batopa/chirp

Cache for Twitter using MongoDB

  • Thursday, March 24, 2016
  • by bato
  • Repository
  • 1 Watchers
  • 1 Stars
  • 16 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

Chirp

Software license Build Status codecov.io Scrutinizer Code Quality Code consistency Latest Stable Version, (*1)

A PHP library to use MongoDB as cache engine for Twitter., (*2)

Requirements

Chirp requires MongoDB and MongoDB PHP Driver, (*3)

Install

Using composer installed globally, (*4)

composer require batopa/chirp

Basic use

require 'vendor/autoload.php';

use Bato\Chirp\Chirp;

// set your Twitter auth conf
$twitterAuth = [
    'oauth_access_token' => 'xxx',
    'oauth_access_token_secret' => 'yyy',
    'consumer_key' => 'www',
    'consumer_secret' => 'zzz'
];


$mongoDbAuth = [
    // the MongoDB database name to use
    'db'  => 'chirp',
    // the MongoDB connection uri. Do not set to use default
    // 'uri' => 'mongodb://user:password@localhost:27017'
];

// instantiate Chirp with Twitter auth and MongoDB conf
$chirp = new Chirp($twitterAuth, $mongoDbAuth);

// Perform Twitter API request GET statuses/user_timeline of @batopa user
// and save tweets in MongoDB
$result = $chirp->write('statuses/user_timeline', [
    // contains parameter used to build the query string
    'query' => [
        'screen_name' => 'batopa'
    ]
]);

// $result will be an array as
// [
//     'saved' => [array of tweets saved],
//     'read' => [array of tweets returned from Twitter API]
// ]

// read data saved previously
$tweets = $chirp->read('statuses/user_timeline');

The MongoDB collection used is based on Twitter request endpoint replacing / with - character, so: * statuses/user_timeline request become statuses-user_timeline collection name * /statuses///home_timeline// request become statuses-home_timeline collection name, (*5)

Advanced use

Saving

You can just save some of tweets returned, (*6)

// Save only tweets under some conditions
$chirp->write('statuses/user_timeline', [
    // contains parameter used for build the query string
    'query' => [
        'screen_name' => 'batopa'
    ],
    // save only if '#chirp' or 'cache' are in 'text' key
    'grep' => [
        'text' => ['#chirp', 'cache']
    ],
    // save only if 'entities' is not empty
    'require' => ['entities']
]);

grep and require can be used to traversing the result set, (*7)

$chirp->write('statuses/user_timeline', [
    // contains parameter used for build the query string
    'query' => [
        'screen_name' => 'batopa'
    ],
    // save only if 'user' has the key 'location'
    // populated with a string containing 'IT'
    'grep' => [
        'user.location' => 'IT'
    ],
    // save only if 'entities' has the key 'hashtags' valorized
    'require' => ['entities.hashtags']
]);

Reading

You can take advantage of MongoDB to filter, sort and manipulate the tweets read, for example, (*8)

// Read data from MongoDB
$chirp->read('statuses/user_timeline', [
    // filter
    [
        'user.screen_name' => 'batopa'
    ],
    // options
    [
        // order by id_str desc
        'sort' => ['id_str' => -1],
        // return only some fields
        'projection' => [
            'created_at' => true,
            'user.screen_name' => true,
            'text' => true,
            'id_str' => true,
            'media_url' => true,
            'entities' => true
        ]
    ]
]);

Using directly MongoDB and Twitter API

If you need you can get the db or a collection and use them for your purposes, (*9)

// get db
$db = $chirp->getDb();

// get collection
$collection = $chirp->getCollection('statuses/user_timeline');

You can also send requests to Twitter API using Chirp::request() or getting the instance of TwitterOAuth, (*10)

$twitter = $chirp->getTwitter();

and use directly it., (*11)

The Versions

24/03 2016

dev-master

9999999-dev https://github.com/batopa/chirp

Cache for Twitter using MongoDB

  Sources   Download

MIT

The Requires

 

The Development Requires

mongodb api cache twitter

19/03 2016

v1.0.0

1.0.0.0 https://github.com/batopa/chirp

Cache for Twitter using MongoDB

  Sources   Download

MIT

The Requires

 

The Development Requires

mongodb api cache twitter

10/03 2016

v0.3.0

0.3.0.0 https://github.com/batopa/chirp

Cache for Twitter using MongoDB

  Sources   Download

MIT

The Requires

 

The Development Requires

mongodb api cache twitter

03/03 2016

v0.2.0

0.2.0.0 https://github.com/batopa/chirp

Cache for Twitter using MongoDB

  Sources   Download

MIT

The Requires

 

The Development Requires

mongodb api cache twitter

29/02 2016

v0.1.0

0.1.0.0 https://github.com/batopa/chirp

Cache for Twitter using MongoDB

  Sources   Download

MIT

The Requires

 

The Development Requires

mongodb api cache twitter