PHPからTwitterを操作できる "TwitterOAuth" を使ってみよう

投稿者 : OSCA

[PR] "出川哲朗の充電させてもらえませんか?"で登場したロケ地を紹介するファンサイト「あの場所へ行こう!」はこちら。

 本稿では PHP で Twitter の API を操作できるライブラリ「TwitterOAuth」について解説します。

TwitterOAuthとは?

 TwitterOAuth は、Abraham Williams 氏が開発する PHP から Twitter の REST API を操作することができるオープンソース・ライブラリで、Twitter の一通りの操作を行うことができます。 TwitterOAuth 以外にも PHP から Twitter の API を操作できるライブラリはありますが、TwitterOAuth はその中でもメジャーなライブラリです。

導入(インストール)する

 TwitterOAuth は、PHP のパッケージ管理ツール Composer を利用して導入することができます。 composer.json ファイルに次のように依存関係を追加すればすぐに利用できます。(Composer については別稿「PHPのライブラリ管理ツール「Composer」入門」などをご覧ください。)

{
    "require": {
        "abraham/twitteroauth": "0.7.2"
    }
}

カスタマーキー、アクセストークンを準備する

 Twitter の REST API にアクセスするためには、カスタマーキーとアクセストークンを取得する必要がありますので Twitter Application Management から取得します。 アプリケーションを新しく追加し、下図のように「Keys and Access Token」のタブ画面からキーを確認することができます。 初期状態ではアクセストークンは発行されていませんので、「Create my access token」のボタンをクリックして発行する必要があります。

Twitter Application Management の画面
Twitter Application Management の画面

Twitter認証インスタンスの作成

 それではさっそく Twitter と接続するプログラムを書いていきましょう。 まずは次のプログラムのように、上で取得したカスタマーキー、アクセストークンを指定して TwitterOAuthクラスをインスタンス化します。

<?php
require "vendor/autoload.php";
use Abraham/TwitterOAuth/TwitterOAuth;

$consumerKey       = "your consumer key";
$consumerSecret    = "your consumer secret";
$accessToken       = "your access token";
$accessTokenSecret = "your access token secret";

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

 これで Twitter の各種APIを利用するためのインスタンス $twitter が作成されました。 あとは実行したい操作を呼出すだけです。 以下でいくつかの Twitter への操作方法を紹介します。

検索する

 まずは検索のサンプルです。 次の例では「TwitterOAuth」というキーワードでツイートを検索しています。 検索結果は #statuses に配列で返却されます。 ここでは print_r 関数で配列の中身を表示するに留めていますが、実装したいビジネスに応じて必要な値を配列から取り出してください。

$twitter = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
$statuses = $twitter->get("search/tweets", ["q" => "TwitterOAuth"]);
print_r($statuses);

特定のユーザーのツイートを取得する

 次は特定のユーザーのツイートを取得するサンプルです。 ここでは本サイトの Twitter アカウント「@webarchlabo」のツイートを取得しています。

$twitter = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
$statuses = $twitter->get("statuses/user_timeline", ["screen_name" => "webarchlabo"]);
print_r($statuses);

ツイートする

 続いてツイートを投稿するサンプルです。 ここでは「Test Tweet.」というメッセージを投稿します。

$twitter = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
$result = $twitter->post("statuses/update", array("status" => "TEST Tweet."));

その他の操作

 ここまでいくつかサンプルプログラムを示しましたが、重要なのは「メソッド (GET, POST)」、「操作名」、「パラメータ名」だという事にお気づきでしょうか? ツイートするのであれば「POST」「statuses/update」「status」という組合せが分かれば良いのです。 ですので、これらの組合せが分かれば他の操作もできそうですね。 じつはこれは Twitter の REST API の開発リファレンスのページ をみれば分かります。 是非他の操作についても同様にチャレンジしてみてください。

おわりに

 本稿では TwitterOAuth を利用して PHP から Twitter を操作する方法について解説しました。 皆様のお仕事のお役に立てれば幸いです。

PHP環境構築トップページへ戻る

PHPのトップへ戻る

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。 個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca