【PHP】Twitter APIの例|投稿・「いいね」・フォロー・リムーブなど|TwitterOAuthの利用方法

今回は、Twitter API を操作できるPHPのTwitterOAuthライブラリの利用方法と簡単な例となります。
例では、TwitterOAuthを利用したPHPスクリプトを、コマンドラインから実行してTwitterを操作します。
Twitter APIを利用する準備
認証情報を確認
APIを利用するTwitterアカウントで Twitter Developers にログインし、追加したAppの「Keys and tokens」画面で、以下の認証情報を確認します。
また、Twitterへ投稿する場合には、User authentication settingsの編集画面で、App permissionsの設定を「Read and write」にします。
- Consumer Key
- Consumer Secret
- Access Token
- Access Token Secret
TwitterOAuthをComposerでインストール
まずは、プロジェクトのフォルダを作成します。
そして、ComposerでTwitterOAuthをインストールするため、プロジェクトのルートディレクトリにcdコマンドで移動し、以下のコマンドを実行します。
composer require abraham/twitteroauth
PHPライブラリの依存関係を管理するComposerをMacで利用する方法については、以下のリンク先を参考にしてみてください。
また、Composerを利用しないインストール方法については、文末の参考サイトを確認してみてください。
TwitterOAuthの読み込み・インスタンスの作成
プロジェクトのルートディレクトリにPHPファイルを作成し、以下のソースコードを記述します。コード内のxxxxxxxxの箇所には、確認したTwitter APIの認証情報をそれぞれ指定します。
また、Twitter API v2. を利用する場合には、TwitterOAuthクラスのインスタンスに対してsetApiVersion('2') を呼び出します。
<?php
// TwitterOAuthを利用するためComposerのautoload.phpを読み込み
require __DIR__ . '/vendor/autoload.php';
// TwitterOAuthクラスをインポート
use Abraham\TwitterOAuth\TwitterOAuth;
// Twitter APIを利用するための認証情報。xxxxxxxxの箇所にそれぞれの情報をセット
const TW_CK = 'xxxxxxxx'; // Consumer Keyをセット
const TW_CS = 'xxxxxxxx'; // Consumer Secretをセット
const TW_AT = 'xxxxxxxx'; // Access Tokenをセット
const TW_ATS = 'xxxxxxxx'; // Access Token Secretをセット
// TwitterOAuthクラスのインスタンスを作成
$connect = new TwitterOAuth( TW_CK, TW_CS, TW_AT, TW_ATS );
// Twitter API v2. を利用する場合
// $connect->setApiVersion('2');
上記コードでは、TwitterOAuthライブラリを読み込み、APIリクエストで利用するTwitterOAuthクラスのインスタンスを作成しています。
Twitter APIの利用例
以下、それぞれのTwitter APIのリクエスト例となり、上記コード後に記述してファイルを実行します。
コマンドラインから作成したファイルを実行するには、ファイルのあるディレクトリに移動して、次のコマンドを実行します。
php ファイル名
投稿をする例
投稿を投稿する例となり、xxxxxxxxの箇所に投稿したい投稿を記述します。
$tweet = 'xxxxxxxx';
$result = $connect->post(
'statuses/update',
array(
// 投稿する投稿を指定
'status' => $tweet
)
);
リクエストパラメータやレスポンスデータなどの詳細は、文末の参考サイトを確認してみてください。
投稿を「いいね」する例
投稿を「いいね」する例となり、xxxxxxxxの箇所に投稿IDを指定します。
$id = 'xxxxxxxx';
$result = $connect->post(
'favorites/create',
array(
'id' => $id
)
);
リクエストパラメータやレスポンスデータなどの詳細は、文末の参考サイトを確認してみてください。
フォローしているユーザーIDを配列で取得
フォローしているユーザーIDを配列で取得する例となります。
// フォローしているユーザーIDを含むオブジェクトを取得
$friends = $connect->get( 'friends/ids' );
// オブジェクト内のユーザーIDの配列を取得
$friends_ids = $friends->ids;
リクエストパラメータやレスポンスデータなどの詳細は、文末の参考サイトを確認してみてください。
フォロワーのユーザーIDを配列で取得
フォロワーのユーザーIDを配列で取得する例となります。
// フォロワーのユーザーIDを含むオブジェクトを取得
$followers = $connect->get( 'followers/ids' );
// オブジェクト内のユーザーIDの配列を取得
$followers_ids = $followers->ids;
リクエストパラメータやレスポンスデータなどの詳細は、文末の参考サイトを確認してみてください。
アカウントをフォローする例
アカウントをフォローする例となり、xxxxxxxxの箇所にフォローするアカウントのユーザーIDを指定します。
$user_id = 'xxxxxxxx';
$result = $connect->post(
'friendships/create',
array(
// フォローするユーザーIDを指定
'user_id' => $user_id
)
);
リクエストパラメータやレスポンスデータなどの詳細は、文末の参考サイトを確認してみてください。
アカウントをリムーブする例
アカウントをリムーブする例となり、xxxxxxxxの箇所にリムーブするアカウントのユーザーIDを指定します。
$user_id = 'xxxxxxxx';
$result = $connect->post(
'friendships/destroy',
array(
// リムーブするユーザーIDを指定
'user_id' => $user_id
)
);
リクエストパラメータやレスポンスデータなどの詳細は、文末の参考サイトを確認してみてください。
エラー処理をする例
APIリクエストの後に、リクエストの成功・失敗を判断する例となります。
if( $connect->getLastHttpCode() == 200 ){
// APIリクエストが成功時の処理
}else{
// APIリクエストがエラー時の処理
}
その他のTwitter API
その他にもTwitter で利用できるAPIはあります。詳しくは以下のリンク先や、文末の参考サイト内を確認してみてください。
大変参考になる記事をありがとうございます。 ところで、これからTwitter APIを利用するには、事実上、v1.0aではなくv2を利用しなければならないと思われます。 その場合のTwitterOAuthライブラリの具体的な利用方法についてネット上の記事等をいろいろ探していますが見つけきれません。 可能でしたら、その辺の記事を書いていただけると大変うれしく思います。