• Stars
    star
    543
  • Rank 81,848 (Top 2 %)
  • Language
    PHP
  • License
    BSD 3-Clause "New...
  • Created almost 15 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Small and easy PHP library for sending messages to Twitter and receiving statuses.

Twitter for PHP Buy me a coffee

Downloads this Month

Twitter for PHP is a very small and easy-to-use library for sending messages to Twitter and receiving status updates.

It requires PHP 5.4 or newer with CURL extension and is licensed under the New BSD License. You can obtain the latest version from our GitHub repository or install it via Composer:

composer require dg/twitter-php

Support Me

Do you like Nette DI? Are you looking forward to the new features?

Buy me a coffee

Thank you!

Usage

Sign in to the https://twitter.com and register an application from the https://apps.twitter.com page. Remember to never reveal your consumer secrets. Click on My Access Token link from the sidebar and retrieve your own access token. Now you have consumer key, consumer secret, access token and access token secret.

Create object using application and request/access keys

use DG\Twitter\Twitter;

$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);

The send() method updates your status. The message must be encoded in UTF-8:

$twitter->send('I am fine today.');

The load() method returns the 20 most recent status updates posted by you:

$statuses = $twitter->load(Twitter::ME);

or posted by you and your friends:

$statuses = $twitter->load(Twitter::ME_AND_FRIENDS);

or most recent mentions for you:

$statuses = $twitter->load(Twitter::REPLIES);

Extracting the information from the channel is easy:

foreach ($statuses as $status) {
	echo "message: ", Twitter::clickable($status);
	echo "posted at " , $status->created_at;
	echo "posted by " , $status->user->name;
}

The static method Twitter::clickable() makes links, mentions and hash tags in status clickable.

The authenticate() method tests if user credentials are valid:

if (!$twitter->authenticate()) {
	die('Invalid name or password');
}

The search() method provides searching in twitter statuses:

$results = $twitter->search('#nette');

The returned result is a again array of statuses.

Error handling

All methods throw a DG\Twitter\Exception on error:

try {
	$statuses = $twitter->load(Twitter::ME);
} catch (DG\Twitter\Exception $e) {
	echo "Error: ", $e->getMessage();
}

Additional features

The authenticate() method tests if user credentials are valid:

if (!$twitter->authenticate()) {
	die('Invalid name or password');
}

Other commands

You can use all commands defined by Twitter API 1.1. For example GET statuses/retweets_of_me returns the array of most recent tweets authored by the authenticating user:

$statuses = $twitter->request('statuses/retweets_of_me', 'GET', ['count' => 20]);

Changelog

v4.1 (11/2019)

  • added Delete Method (#68)
  • token is optional throughout + supply get() method

v4.0 (2/2019)

  • requires PHP 7.1 and uses its advantages like typehints, strict types etc.
  • class Twitter is now DG\Twitter\Twitter
  • class TwitterException is now DG\Twitter\Exception

v3.8 (2/2019)

  • Twitter::sendDirectMessage() uses new API
  • Twitter::clickable: added support for $status->full_text (#60)

v3.7 (3/2018)

  • minimal required PHP version changed to 5.4
  • Twitter::send() added $options
  • Twitter::clickable() now works only with statuses and entites
  • fixed coding style

v3.6 (8/2016)

  • added loadUserFollowersList() and sendDirectMessage()
  • Twitter::send() allows to upload multiple images
  • changed http:// to https://

v3.5 (12/2014)

  • allows to send message starting with @ and upload file at the same time in PHP >= 5.5

v3.4 (11/2014)

  • cache expiration can be specified as string
  • fixed some bugs

v3.3 (3/2014)

  • Twitter::send($status, $image) can upload image
  • added Twitter::follow()

v3.2 (1/2014)

  • Twitter API uses SSL OAuth
  • Twitter::clickable() supports media
  • added Twitter::loadUserInfoById() and loadUserFollowers()
  • fixed Twitter::destroy()

v3.1 (3/2013)

  • Twitter::load() - added third argument $data
  • Twitter::clickable() uses entities; pass as parameter status object, not just text
  • added Twitter::$httpOptions for custom cURL configuration

v3.0 (12/2012)

  • updated to Twitter API 1.1. Some stuff deprecated by Twitter was removed:
    • removed RSS, ATOM and XML support
    • removed Twitter::ALL
    • Twitter::load() - removed third argument $page
    • Twitter::search() requires authentication and returns different structure
  • removed shortening URL using http://is.gd
  • changed order of Twitter::request() arguments to $resource, $method, $data

v2.0 (8/2012)

  • added support for OAuth authentication protocol
  • added Twitter::clickable() which makes links, @usernames and #hashtags clickable
  • installable via composer require dg/twitter-php

v1.0 (7/2008)

  • initial release

(c) David Grudl, 2008, 2016 (https://davidgrudl.com)

More Repositories

1

ftp-deployment

A tool for automated deployment of web applications to an FTP server.
PHP
601
star
2

dibi

Dibi - smart database abstraction layer
PHP
487
star
3

bypass-finals

Removes `final` and `readonly` keywords from source code on-the-fly and allows mocking of final methods and classes. It can be used together with any test tool such as PHPUnit or Mockery.
PHP
474
star
4

rss-php

Small and easy-to-use library for consuming RSS and Atom feeds
PHP
473
star
5

ftp-php

FTP Wrapper Class for PHP 5
PHP
205
star
6

MySQL-dump

MySQL Dump Utility
PHP
201
star
7

texy

Texy is a lightweight markup language with plain text formatting syntax engine.
HTML
155
star
8

composer-cleaner

Victor The Cleaner: removes unnecessary files from vendor directory
PHP
133
star
9

adminer

Customizations for Adminer, the best database management tool written in PHP.
PHP
123
star
10

php54-arrays

Command-line script to convert between array() and PHP 5.4's short syntax []
PHP
47
star
11

composer-backslasher

Composer plugin that speeds up your application by adding backslashes to all PHP internal functions and constants.
PHP
40
star
12

php-extensions-finder

Finds PHP extensions required by code.
PHP
39
star
13

composer-frontline

Composer Frontline: updates all the version constraints in the composer.json file to latest version.
PHP
27
star
14

texy-editor

Live editor for Texy
PHP
24
star
15

web-davidgrudl.com

My homepage
PHP
14
star
16

MySQL-check

Checks a MySQL database for invalid foreign keys, i.e., a keys pointing to missing rows.
PHP
14
star
17

dibi-docs

Dibi Documentation
6
star
18

imap

Retrieval, processing, and manipulation of emails within a mailbox via POP3, IMAP and NNTP
PHP
5
star
19

php-console

PHP
4
star
20

texy-docs

Texy Documentation
2
star
21

folksonomy

Collaborative tagging for open-source software. Used for content classification at www.code.dance.
1
star
22

dg

1
star