=== Get Tweets in PHP ===
Contributors: netgloo, azanelli, aboutnick
Tags: twitter, tweet, tweets, latest-tweets, developers
Requires at least: 4.0
Tested up to: 4.7
Stable tag: 1.2
License: GPLv2 or later
Get latest tweets from a Twitter account with a couple of lines of PHP, and do anything you want with them.
== Description ==
This plugin will add the PHP class `GetTweetsInPhp`. You can use this class as described below for retrieving **latest tweets** from a Twitter account, then handle the tweets as you want in your PHP code.
**Note**: you should create a Twitter app before using this plugin. You can do it from here: [http://apps.twitter.com](http://apps.twitter.com).
= Features =
* Get latest N tweets from a Twitter account.
* Get the tweet's text formatted as HTML (with links for each entities).
* Cache support.
* Made for developers.
* Really light and simple.
* Works with the v1.1 Twitter API.
* Trivial install/uninstall (only add/remove the plugin's files).
* No any data will be permanently stored in your database (only transient data
if the cache is enabled).
* Proudly coded by [Netgloo](http://netgloo.com/en).
= Example usage =
Get and show latest tweets from [@netglooweb](http://twitter.com/netglooweb):
// Set configurations
$configs = [
// Set here tokens from your Twitter's app
'consumer_key' => 'CONSUMER_KEY',
'consumer_secret' => 'CONSUMER_SECRET',
// The Twitter account name
'screen_name' => 'netglooweb',
// The number of tweets
'count' => 5,
];
// Get latest tweets using the function get_tweets
$tweets = \Netgloo\GetTweetsInPhp::get_tweets($configs);
// ...
// For each tweet show the HTML text and the attached image
foreach ($tweets as $tweet) {
echo "
";
echo $tweet->n_html_text;
if ($tweet->n_has_media_photo) {
echo "
";
}
echo "
";
}
// ...
That's all! Have fun!
= Configurations =
The `get_tweets()` function takes an array of configurations:
$configs = [
// --- Required ---
// The tokens from your Twitter's app
'consumer_key' => '...',
'consumer_secret' => '...',
// The Twitter account name
'screen_name' => '...',
// --- Optional ---
// The number of tweets
'count' => 20,
// Include also the retweets
'include_rts' => true,
// In the HTML text will be showed "Retweeted by ..." if the tweet
// is a retweet
'show_retweeted_by' => true,
// Enable the cache
// It is recommended to activate the cache, when you put live
// your website, in order to avoid to reach the Twitter's api rate
// limit of 300 requests / 15-min.
'cache_enabled' => false,
// Cache expiration (in seconds)
// Increase the value to optimize the website's speed, decrease
// the value if you want a more real-time behaviour (but not
// less than 4 seconds to avoid to reach the rate limit).
'cache_expiration' => 60,
// Templates
// "Retweeted by" template
'retweeted_by_template' =>
' Retweeted by {{user_name}}',
// Hash tag link template
'hashtag_link_template' =>
'' .
'#{{hashtag_text}}',
// Url link template
'url_link_template' =>
'{{url_text}}',
// User mention link template
'user_mention_link_template' =>
'@{{user_mention_text}}',
// Media link template
'media_link_template' =>
'{{media_text}}'
];
$tweets = \Netgloo\GetTweetsInPhp::get_tweets($configs);
= Returned values =
The `get_tweets()` function will return an Array of tweets. On each tweet object are available these properties:
* `n_html_text` (String) The tweet text formatted as HTML, with links on each entities.
* `n_is_retweeted` (Boolean) True if the curret tweet is a retweet.
* `n_has_media_photo` (Boolean) True if the current tweet has an attached photo.
* `n_media_photo_url` (String) The url of the tweet's attached photo.
* `n_media_photo_urls` (Array) If the tweet has more than one attached photos this properties contains all the urls.
Other available properties are those returned from the [user_timeline Twitter's API](https://dev.twitter.com/rest/reference/get/statuses/user_timeline).
These are some useful ones:
* `created_at`
* `retweet_count`
* `user->name`
* `user->screen_name`
* `user->profile_image_url`
If the properties `n_is_retweeted` is true the current tweet is a "re-tweet" and the `retweeted_status` object is available:
* `retweeted_status->user->name`
* `retweeted_status->user->screen_name`
* `retweeted_status->retweet_count`
**Example**
This code use some of the above properties:
// ...
$tweets = \Netgloo\GetTweetsInPhp::get_tweets($configs);
foreach ($tweets as $tweet) {
echo $tweet->created_at . "
";
echo $tweet->n_html_text . "
";
if ($tweet->n_has_media_photo) {
echo $tweet->n_media_photo_url . "
";
}
}
// ...
= Limitations =
Since we rely on the Twitter's `user_timeline` API, you should read the following docs for taking in account any API's limitation:
* https://dev.twitter.com/rest/reference/get/statuses/user_timeline
* https://dev.twitter.com/rest/public/timelines
= Contributing =
For patches, bug reports, suggestions or requests for features, there is a Git repository on GitHub here:
https://github.com/netgloo/get-tweets-in-php
== Installation ==
= Requirements =
To work this plugin, following component need to be installed in your server.
* PHP version 5.3 or higher
* cURL
* WordPress 4.2.2 or higher
= Install =
Put the plugin to your Wordpress' plugins folder and activate it from the Admin Backend.
= Uninstall =
Just delete the plugin from Wordpress.
== Frequently Asked Questions ==
= Why the "n" before your custom tweet's properties? =
Our custom properties (i.e. properties not from the Twitter's API) are prefixed with an "n". The "n" is the first character in "Netgloo" ;).
== Changelog ==
= 1.2 =
* Custom HTML templates for links and "retweeted by" text.
* New hashtag link: https://twitter.com/hashtag.
* Get media urls with https.
* Cache disabled by default (as in the documentation).
= 1.1 =
* Bug fix setting transient cache name.
= 1.0 =
* First release.