【Twitter API】自動ツイートをするPHPスクリプトの例|Twitter bot

今回は、PHPでTwitter APIを利用し、Twitterボットのようにランダムで自動ツイートする簡単な例となります。
【Twitter API × PHP】自動ツイートをする例
例では、PHPのTwitterOAuthライブラリでTwitter APIを利用し、指定した文字列の中からランダムでツイートするスクリプトを作成します。そして、そのPHPスクリプトをレンタルサーバーのcronから実行し、自動でツイートさせます。
Twitter APIの認証情報を確認
まずは、Twitter DevelopersにAPIを利用するTwitterアカウントでログインし、APIリクエストで必要となる以下の認証情報を確認します。
また、Twitterへ投稿する場合には、User authentication settingsの編集画面で、App permissionsの設定を「Read and write」にします。
- Consumer Key
- Consumer Secret
- Access Token
- Access Token Secret
TwitterOAuthをインストール
Twitter API を操作できるPHPのTwitterOAuthライブラリをインストールします。
今回の例では、以下のページから「twitteroauth-master.zip」をダウンロードし解凍します。
また、PHPライブラリの依存関係を管理するComposerでインストールする方法など、TwitterOAuthライブラリの利用方法の詳細は、以下のリンク先を参考にしてみてください。
ランダムでツイートをするPHPスクリプトを作成
PHPファイルを作成し、以下のソースコードを記述します。コード内のxxxxxxxxの箇所には、確認したTwitter APIの認証情報をそれぞれ指定します。
例では、スクリプトを実行すると、指定した文字列の中からランダムでツイートをします。
また、Twitter API v2. を利用する場合には、TwitterOAuthクラスのインスタンスに対してsetApiVersion('2') を呼び出します。
<?php
// TwitterOAuthを利用するためautoload.phpを読み込み
require __DIR__ . 'twitteroauth-master/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');
// ツイートしたい文字列を配列にセット
$array = array(
'tweet01',
'tweet02',
'tweet03'
);
// 配列をランダムにして、先頭を取得
shuffle( $array );
$tweet = $array[0];
// ツイートを投稿
$result = $connect->post(
'statuses/update',
array(
'status' => $tweet
)
);
PHPファイルとTwitterOAuthライブラリをサーバーにアップロード
ダウンロードした「twitteroauth-master」フォルダと、作成したPHPファイルを、PHPとcronが利用できるサーバーにアップロードします。
今回の例では、サーバー内の同じディレクトリに、「twitteroauth-master」フォルダと、作成したPHPファイルをアップロードします。
PHPファイルをcronに設定
最後に上記で作成したPHPスクリプトのファイルを、サーバーのcron(クーロン)に設定します。それにより、作成したPHPスクリプトを定期的に実行できます。
cronの設定については以下のリンク先を参考にしてみてください。
GASで自動ツイートをする場合
PHPではなく、GASで自動ツイートをする方法については、以下のリンク先を参考にしてみてください。
PHPコードの説明
以下、例のソースコードの簡単な説明となります。
ライブラリを読み込みインスタンスを作成
コード2行目からの以下の箇所では、TwitterOAuthのライブラリを読み込み、APIリクエストで利用するTwitterOAuthクラスのインスタンスを作成しています。
// TwitterOAuthを利用するためautoload.phpを読み込み
require __DIR__ . 'twitteroauth-master/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');
ツイートを投稿
コード19行目からの以下の箇所では、上記のインスタンスを利用してAPIリクエストを行い、指定したテキストのツイートを投稿しています。
// ツイートしたい文字列を配列にセット
$array = array(
'tweet01',
'tweet02',
'tweet03'
);
// 配列をランダムにして、先頭を取得
shuffle( $array );
$tweet = $array[0];
// ツイートを投稿
$result = $connect->post(
'statuses/update',
array(
'status' => $tweet
)
);
上記コードでは、ツイートしたい文字列を配列にセットし、shuffle関数で配列をランダムにして、先頭のみを取得しています。
shuffle関数の利用例などは、以下のリンク先を参考にしてみてください。