【Twitter API × PHP】ランダムで自動ツイートをする例|Twitter bot・cron

今回は、PHPでTwitter APIを利用し、指定した文章をランダムでTwitterから自動ツイートする例となります。

【Twitter API × PHP】ランダムで自動ツイートする例

例では、PHPのTwitterOAuthライブラリでTwitter APIを利用し、指定した文字列をランダムでツイートするスクリプトを作成します。そして、そのPHPスクリプトをレンタルサーバーのcronから実行し、自動でツイートさせます。

以下、手順となります。

TwitterOAuthをダウンロード

Twitter API を操作できるPHPのTwitterOAuthライブラリをダウンロードします。

TwitterOAuthライブラリの利用、ダウンロード方法については、以下のリンク先を参考にしてみてください。

今回の例では、以下のリンク先から「twitteroauth-master.zip」をダウンロードし解凍します。

GitHub - abraham/twitteroauth

ツイートするPHPスクリプトを作成

次に、TwitterOAuthを利用し、指定した文字列をランダムでツイートするPHPスクリプトを作成します。

以下が例のスクリプトとなり、任意のPHPファイル名をつけて保存します。

<?php
// ツイートしたい文字列を配列にセット
$array = array(
        'tweet01',
        'tweet02',
        'tweet03'
);
// 配列をランダムにして、先頭を取得
shuffle( $array );
$tweet = $array[0];

// TwitterOAuthライブラリの読み込み
require 'twitteroauth-master/autoload.php';
// TwitterOAuthクラスをインポート
use Abraham\TwitterOAuth\TwitterOAuth;

// Twitter APIを利用するための認証情報。xxxxxxxxの箇所にそれぞれの情報をセット
$CK = 'xxxxxxxx'; // Consumer Keyをセット
$CS = 'xxxxxxxx'; // Consumer Secretをセット
$AT = 'xxxxxxxx'; // Access Tokenをセット
$AS = 'xxxxxxxx'; // Access Token Secretをセット

// TwitterOAuthのインスタンスを作成
$connect = new TwitterOAuth( $CK, $CS, $AT, $AS );

// 投稿するツイートをセット
$result = $connect->post(
    'statuses/update',
    array(
        'status' => $tweet
    )
); 

if( $connect->getLastHttpCode() == 200 ){
	// APIリクエストが成功時の処理
}else{
	// APIリクエストがエラー時の処理
}

PHPファイルとTwitterOAuthライブラリをサーバーにアップロード

ダウンロードした「twitteroauth-master」フォルダと、作成したPHPファイルを、PHPとcronが利用できるサーバーにアップロードします。

今回の例では、サーバー内の同じディレクトリに、「twitteroauth-master」フォルダと、作成したPHPファイルをアップロードします。

PHPファイルをcronに設定

最後に上記で作成したPHPスクリプトのファイルを、サーバーのcron(クーロン)に設定します。それにより、作成したPHPスクリプトを定期的に実行できます。

cronの設定については以下のリンク先を参考にしてみてください。

作成したPHPスクリプトの説明

以下、指定した文字列をランダムでツイートするPHPスクリプトのポイントなる箇所の説明となります。

ツイートしたい文字列を配列にセットし、ランダムで先頭を取得

まず、ツイートしたい文字列を複数、配列にセットします。そして、shuffle関数で配列をランダムにして、先頭のみを取得します。

例のソースコードでは以下の箇所となります。

ソースコード2行目

// ツイートしたい文字列を配列にセット
$array = array(
        'tweet01',
        'tweet02',
        'tweet03'
);
// 配列をランダムにして、先頭を取得
shuffle( $array );
$tweet = $array[0];

shuffle関数の利用例などは、以下のリンク先を参考にしてみてください。

TwitterOAuthを利用しツイートする内容を作成

最後に、以下の通りTwitterOAuthを利用しツイートする内容をセットします。

まず、TwitterOAuthライブラリを読み込み、Twitter APIの認証情報を引数に指定しTwitterOAuthインスタンスを作成します。

そして、TwitterOAuthのpostメソッドのパラメータに、ツイートする内容として、上記で取得した配列の先頭をセットします。

例のソースコードでは以下の箇所となります。

ソースコード12行目

// TwitterOAuthライブラリの読み込み
require 'twitteroauth-master/autoload.php';
// TwitterOAuthクラスをインポート
use Abraham\TwitterOAuth\TwitterOAuth;

// Twitter APIを利用するための認証情報。xxxxxxxxの箇所にそれぞれの情報をセット
$CK = 'xxxxxxxx'; // Consumer Keyをセット
$CS = 'xxxxxxxx'; // Consumer Secretをセット
$AT = 'xxxxxxxx'; // Access Tokenをセット
$AS = 'xxxxxxxx'; // Access Token Secretをセット

// TwitterOAuthのインスタンスを作成
$connect = new TwitterOAuth( $CK, $CS, $AT, $AS );

// 投稿するツイートをセット
$result = $connect->post(
    'statuses/update',
    array(
        'status' => $tweet
    )
); 

if( $connect->getLastHttpCode() == 200 ){
	// APIリクエストが成功時の処理
}else{
	// APIリクエストがエラー時の処理
}

参考サイト、参考書籍

コメント投稿またはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。
Twitterで返信する場合はコチラから。