Services_Twitter

Tweet

Services_TwitterはPHPで簡単にTwitter APIを使用できるPEARパッケージです。

xAuth/oAuth 対応型を開発中。PHP 5.2以降用になる予定です。ライセンスはApache License 2.0に変更予定。
開発中のバージョンを仮公開中(αバージョン)。現行とは動作が異なりますので注意してください。
本家PEAR版と区別する為に名称を変更します。→Tr_Twit
Zip(96KB) | Tar.Gz(58KB)

  1. ライセンス
  2. インストール
  3. リファレンス
  4. 更新履歴
  5. TODO

ライセンス

このライブラリはThe PHP License, version 3.01の元に公開されています。

インストール

必須環境

Services_TwitterはPHP4.3.0以上の環境で動作する事を前提に作成されています。

pearコマンドを使った場合

Services_TwitterはPEARパッケージで提供されています。PEARコマンドからインストールを行うことが可能です。

# pear install -f http://labs.transrain.net/files/Services_Twitter-0.4.0.tar.gz

情報取得時にJSON形式からデコードしたい場合はJsphonをインストールする事によって、変換機能を使用する事が可能になります。JsphonHawk氏のサイトで入手してインストールしてください。

一括でインストールを行うにはまず、pear.hawklab.jpのPEARチャネルを登録し、--alldepsオプションをつける事によってインストールされます。

# pear channel-discover pear.hawklab.jp
# pear install --alldeps -f http://labs.transrain.net/files/Services_Twitter-0.4.0.tar.gz

pear環境を使えない場合

PEAR環境が使えない場合は最新版のtarballをダウンロードし、展開したファイルの中のServicesディレクトリを任意の場所に設置してください。
Jsphonをインストールする場合にはincludeパスが通っているディレクトリに設置してください。require_once('Jsphon.php');で読み込めるように設定する必要があります。

リファレンス

基本

利用方法はとても簡単です。オブジェクトを生成して欲しいデータを取り出すメソッドを呼ぶだけでJSON形式のデータを取得する事が出来ます。また、設定を行う事によってModifiedチェックを行ったり、JSONから配列の形に変換してデータを取得する事も可能です。

require_once "Services/Twitter.php";

$user = 'twitterのユーザ名';
$pass = 'twitterのパスワード';

$st =& new Services_Twitter($user, $pass);

setAppName(string $name)

Twitterに通知するアプリケーション名を設定する為のメソッド

引数

string $name
使用するアプリケーションの名前を設定する。
この名前はTwitterに通信を行う際にヘッダに設定され、(将来的に)Twitterのweb画面に表示される。

使用方法

$st->setAppName('twitterMobile');

setAppVersion($ver)

Twitterに通知するアプリケーションのバージョンを設定する為のメソッド

引数

string $ver
使用するアプリケーションのバージョンを設定する。
この名前はTwitterに通信を行う際にヘッダに設定される。

使用方法

$st->setAppVersion('0.6');

setAppURL($url)

Twitterに通知するアプリケーション情報XMLのURLを設定する為のメソッド

引数

string $url
使用するアプリケーションの情報を格納したXMLへのURLを設定する。
この名前はTwitterに通信を行う際にヘッダに設定される。
XMLの書式は下記の通り。
<?xml version="1.0" encoding="utf-8" ?>
<client>
    <name>アプリケーションの名前</name>
    <version>アプリケーションのバージョン</version>
    <author>
        <name>制作者の名前</name>
        <email>制作者のメールアドレス</email>
        <twitter>制作者のTwitterスクリーン名</twitter>
    </author>
    <url>アプリケーションに関するWebページのURI</url>
    <twitter>アプリケーションのTwitterスクリーン名</twitter>
    <description><![CDATA[
        そのアプリケーションに関する簡単な説明
    ]]></description>
</client>

使用方法

$st->setAppURL('http://examples.com/application.xml');

setEtag($etag)

Modifiedチェックに使うEtagを設定する為のメソッド

引数

string $etag
自分でModifiedチェックを実装する際にEtagを設定する事によって、次のAPI呼び出し時にIf-None-Matchで更新チェックを行う様になる。
enableModifiedCheckを使用した場合はこのメソッドでEtagを設定する必要はない。

使用方法

$st->setEtag('"1be7916961faba136c10c9e6487e17c9"');

getEtag()

Modifiedチェックに使うEtagを取得する為のメソッド

戻り値

string
API呼び出し後に使用すると新しいEtagが帰ってくる。
enableModifiedCheckを使用した場合はこのメソッドでEtagを取得する必要はない。

使用方法

$etag = $st->getEtag();
echo $etag; // "1be7916961faba136c10c9e6487e17c9"

setLastModified($last_modified)

Modifiedチェックに使うLast-Modifiedを設定する為のメソッド

引数

string $last_modified
自分でModifiedチェックを実装する際にLast-Modifiedを設定する事によって、次のAPI呼び出し時にIf-Modified-Sinceで更新チェックを行う様になる。
enableModifiedCheckを使用した場合はこのメソッドでLast-Modifiedを設定する必要はない。
この値はGMT値を設定する。

使用方法

$st->setLastModified('Sun, 06 Nov 1994 08:49:37 GMT');

getLastModified()

Modifiedチェックに使うLast-Modifiedを取得する為のメソッド

戻り値

string
API呼び出し後に使用すると新しいLast-Modifiedが帰ってくる。
enableModifiedCheckを使用した場合はこのメソッドでLast-Modifiedを取得する必要はない。

使用方法

$last_modified = $st->getLastModified();
echo $last_modified; // Sun, 06 Nov 1994 08:49:37 GMT

setCacheDir($dir)

自動Modifiedチェックに使うキャッシュファイルを保存するパスを設定する為のメソッド

引数

string $dir
Modifiedチェックで生成されるキャッシュファイルを保存するディレクトリのパスを設定する。
enableModifiedCheckを使用するにはこのメソッドでキャッシュパスを指定する必要がある。

使用方法

$st->setCacheDir('./cache/');
$st->enableModifiedCheck(); // 自動Modifiedチェックの有効化

enableJsonConvert()

JSONの自動デコード機能を有効化するメソッド。
Jsphonがinclude pathに設置されている場合のみ有効。

使用方法

$st->enableJsonConvert();

disableJsonConvert()

JSONの自動デコード機能を無効化するメソッド。
デフォルトでは無効化されているので呼び出す必要は無い。

使用方法

$st->disableJsonConvert();

enableModifiedCheck()

自動Modifiedチェック機能を有効化するメソッド。
setCacheDirでキャッシュパスが設定されている場合のみ有効。

使用方法

$st->setCacheDir('./cache/');
$st->enableModifiedCheck(); // 自動Modifiedチェックの有効化

disableModifiedCheck()

自動Modifiedチェック機能を無効化するメソッド。
デフォルトでは無効化されているので呼び出す必要は無い。

使用方法

$st->disableModifiedCheck();

getPublicTimeline($id = false)

public timelineのデータをJSON形式で取得するメソッド。
enableJsonConvertを呼び出している場合は連想配列で返される。

引数

(optional) int $id
指定した記事IDより後のデータを取得する。指定しない場合は最新の20件を取得する。

戻り値

string or array
public timelineのデータ。
enableJsonConvertを使用した場合はarray、していない場合はJSON形式のstringを返す。
var_dump($st->getPublicTimeline());
array(20) {
  [0]=>
  array(4) {
    ["text"]=>
    string(22) "最新のステータス"
    ["id"]=>
    int(記事ID)
    ["user"]=>
    array(8) {
      ["name"]=>
      string(11) "ユーザ名"
      ["profile_image_url"]=>
      string(86) "アイコンURL"
      ["description"]=>
      string(0) ""
      ["location"]=>
      string(0) ""
      ["screen_name"]=>
      string(9) "スクリーン名"
      ["url"]=>
      string(24) "WebサイトURL"
      ["id"]=>
      int(ユーザーID)
      ["protected"]=>
      bool(false)
    }
    ["created_at"]=>
    string(30) "Thu Apr 26 07:44:42 +0000 2007"
  }

  /* ... 略 ... */
}

getFriendsTimeline($options = false)

with friendのデータをJSON形式で取得するメソッド。
enableJsonConvertを呼び出している場合は連想配列で返される。

引数

(optional) array $options
呼び出すためのオプションを連想配列で設定する。
id:呼び出す対象のスクリーン名かユーザーID
since:指定した日付以降のデータを取得する 例(Tue, 27 Mar 2007 22:55:48 GMT)

戻り値

string or array
with friendのデータ。
enableJsonConvertを使用した場合はarray、していない場合はJSON形式のstringを返す。
$options = array(
    'since' => 'Tue, 27 Mar 2007 22:55:48 GMT'
);
var_dump($st->getFriendsTimeline($options));
array(20) {
  [0]=>
  array(4) {
    ["text"]=>
    string(22) "最新のステータス"
    ["id"]=>
    int(記事ID)
    ["user"]=>
    array(8) {
      ["name"]=>
      string(11) "ユーザ名"
      ["profile_image_url"]=>
      string(86) "アイコンURL"
      ["description"]=>
      string(0) ""
      ["location"]=>
      string(0) ""
      ["screen_name"]=>
      string(9) "スクリーン名"
      ["url"]=>
      string(24) "WebサイトURL"
      ["id"]=>
      int(ユーザーID)
      ["protected"]=>
      bool(false)
    }
    ["created_at"]=>
    string(30) "Thu Apr 26 07:44:42 +0000 2007"
  }

  /* ... 略 ... */
}

getUserTimeline($options = false)


getStatusShow($id)


setUpdate($value)


getReplies()

使用方法

$st->getReplies();

getFriends($id = null)


getFollowers()


getFeatured()


getUserShow($id)


getDirectMessage($since = null)


setDirectMessage($id, $text)


addFriend($id)

使用方法

$st->addFriend('friend screen name');

removeFriend($id)

使用方法

$st->removeFriend('friend screen name');

他の情報

作者のブログ:Transrain
作者のTwitter:@ariela

使用されているアプリケーション

更新履歴

0.4.0 (2007-07-12)
pageパラメータに一部対応
Account Methodsに対応
0.3.0 (2007-05-31)
repliesに対応
Friendship Methodsに対応
0.2.0 (2007-04-26)
Jsphonによるデコードに対応
Modifiedチェックの切り替えを可能に
0.1.0 (2007-04-24)
一通りのAPIを実装して公開

TODO