ここではTwitterBot用のPHP作成とつぶやく内容のリスト作成、ツイートを自動投稿するためのサーバーでのCron設定方法をご紹介します。
※Twitterbot用アカウント作成方法については【2016年最新】Twitter Bot用のアカウントを作成する方法をごらんください。
TwitterBotを動かすPHPファイルを作成する
まず、こちらのページ(GitHub)からtwitteroauthプログラムファイルをダウンロードしてください。
右の「Download ZIP」をクリックします。
Zipファイルを解凍すると「twitteroauth-master」というフォルダができますので、フォルダ名を「twitteroauth」にリネイムします。
次からPHPファイルを作っていきます。
tokenを入力するconfig.phpを作成する
[html]<?php
define("consumer_key", "×××××××××××××××");
define(‘consumer_secret’, ‘×××××××××××××××’);
define(‘access_token’, ‘×××××××××××××××’);
define(‘access_token_secret’, ‘×××××××××××××××’);
?>[/html]
まずconfig.phpファイルを作ります。
ここにTwitterdeveloperアカウントで作ったtoken4つを入力します。
twitterbot用のphpを作る
次にtwitter_bot.phpを作ります。
[html]
<?php
require_once(‘twitteroauth/autoload.php’);
require_once(‘twitteroauth/src/TwitterOAuth.php’);
require_once(dirname(__FILE__) . ‘/config.php’);
use Abraham\TwitterOAuth\TwitterOAuth;
// ファイルの行をランダムに抽出
$filelist = file(‘list.txt’);
if( shuffle($filelist) ){
$message = $filelist[0];
}
// つぶやく
$connection = new TwitterOAuth(consumer_key, consumer_secret, access_token, access_token_secret);
$request = $connection->post("statuses/update", array("status"=> $message ));
?>
[/html]
つぶやく内容のリストを作成する
最後につぶやく内容のリスト(list.txt)を作ります。
※リストは10個程度作ってテストしてみましょう。
ファイルとフォルダの階層はこのようになっています。
downloadしたフォルダの上の階層に、config.php,twitter_bot.php,list.txtを作っています。
これで準備は完了です。
ちゃんとつぶやけるかどうか、ローカルホストでtwitter_bot.phpにアクセスしてみてください。
Twitterアカウントにツイートが反映されているようでしたら、大丈夫です。
TwitterBotをCronで自動投稿させる方法
最後は自動でツイートするためのCron設定です。
まず、先ほど使ったフォルダとファイルを、使っているサーバーにアップロードします。
次にサーバーにログインし「Cron設定」をクリックします。
「Cronの追加」のタブをクリックし、プログラムを実行する時間と、実行するファイルの設定をします。
今回の例ですと、11時10分と15時10分に自動ツイートする設定になっています。
毎分、毎時間などを設定するときは「*」を入力します。
コマンドは実行するPHPファイルを指定します。
エックスサーバーの実行コマンド: /usr/bin/php5.6 /home/××××××××/sample.net/public_html/bot/twitter_bot.php
××××××××がアカウント名で、sample.netがドメインの場合
サクラサーバーの実行コマンド: cd /home/sample/www/bot/; /usr/local/bin/php twitter_bot.php
アカウントがsampleで、botがwwwの下層フォルダ、botフォルダの中にtwitter_bot.phpがある場合
パーミッションの設定
最後にアップロードしたファイルのパーミッションの設定をしておきます。
エックスサーバーのPHPパーミッション設定より
twitter_bot.php・・・644
config.php・・・644
autoload.php・・・644
TwitterOAuth.php・・・644
list.txt・・・600
エックスサーバーで500エラーが出る場合
エックスサーバーでツイッターbot.phpにアクセスすると500エラーがでる場合があります。
この場合、原因はPHPのバージョンが低い可能性があります。
PHP Parse error: syntax error, unexpected '[' in /home/sample/sample.net/public_html/bot/twitteroauth/src/TwitterOAuth.php on line 129
xサーバーのホスティングサービスにログインしてエラーログを確認したところ、上記のようなエラーが出ていました。
私の場合、PHPのバージョンを5.3から5.6に上げるとエラーが解消されました。
bot用のphpサンプル、ありがとうございました。
また、cron設定も大変参考になりました。
最初に実行したところ、日本語が文字化けしてしまいました。
原因はphp.iniの
default_charset=”UTF-8″
mbstring.internal_encoding = UTF-8
なのに、
list.txtがsjisとコード設定が違うことが原因でした。
list.txtをutf-8で保存しなおした所、文字ばけは解消しました。
コメントありがとうございます。
文字化けが解決してよかったです!