Twitterのbotを作る #1「下準備編:投稿だけなら簡単にできる」

2015年2月24日

サービス プログラミング 特集

ブログを書くと、友達などに知らせる為に、TwitterやFacebookでお知らせするワケですが、いちいち手で書き込むのも面倒くさい。 面倒くさい事は自動化すればいいので、とりあえずTwitterに自動投稿してみたいと思った。 Twitterの自動投稿するのを「bot(ボット)」っていうんですが、今まではあまりツイートしなかったんで、見向きもしてませんでしたが、今回調べて、「こんなに簡単なのか!!」というぐらい簡単だったので、 メモしておきます。

bot用サーバーを準備する

これは基本なので、webサーバーを用意しましょう。 自宅にPC1台しかない人は、下記のどれかを行ってください。
・AWSでエラスティックを立てる ・ZAMPかMAMPをインストールする
とりあえず、PHPが動く環境を作りましょう。 ※ターミナルでアクセスできるようにしておいてね。

Twitterのアカウントを準備

今現在自分の使っているアカウントでもいいんですが、テストしたりするので、テスト用を作ることをオススメします。 ※いちいちサインアウトして、操作するのが面倒くさい人は、別のブラウザを立ち上げて操作すると、いちいちログアウトしなくてすむぞ! https://twitter.com/

Twitterアカウントのアプリkeyを取得しよう

1. Apprication Managementページへアクセス

https://apps.twitter.com/

2. 「Create New App」ボタンを押す

3. 必要情報を入力

4.「Permissions」に移動して、「Read and Write」を選択

5.「Key And Accrss Token」に移動

6.「Token Action」ボタンを押す

必要情報をメモる

下記key情報をメモっておいてください。 ただ、このページにくれば、何度でも確認できますけどね。
Consumer Key (API Key) Consumer Secret (API Secret) Access Token Access Token Secret

Githubから、ライブラリをcloneする

事前にサーバーにターミナルでSSHログインしておいてください。 https://github.com/abraham/twitteroauth 任意の場所に、cloneする。 $ git clone https://github.com/abraham/twitteroauth.git

プログラムを追加する

「bot.php」を作成 ※階層は以下になっている事。 / ┣ tweetoauth/ ┗ bot.php

「bot.php」

<?php //CLIの場合argvをREQUESTに変換する。 if(!isset($_SERVER['SCRIPT_URI']) && isset($argv)){ for($i=0,$c=count($argv);$i<$c;$i++){ if(!$argv[$i]){continue;} //各クエリの分解 $q = explode("=",$argv[$i]); if(count($q)<2){continue;} if($q[0]!=''){ //requestに格納 $key = $q[0]; $val = join("=",array_slice($q,1)); $_REQUEST[$key]=$val; } } } require 'twitteroauth/autoload.php'; use Abraham\TwitterOAuth\TwitterOAuth; $consumer_key = "aLrTI6JhcLKob0YbqCJHiFeDr"; $consumer_secret = "j1gyzD56c4Vbd0NZTdZeEe8oB2TIwjPbdv63Vn28hoyWaII2eD"; $access_token = "11363242-R3KcruUmQI9CMNYsj1VaLHw1wAmytm24pNHMCkAPP"; $access_token_secret = "ENSQ2oFfzPWfQ19VA5zSWbKOJardmZytctmCb11Xf1Uxl"; $connection = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); //投稿 $statues = $connection->post("statuses/update", array("status" => "Hello world !!")); echo "finish!"."\n";

コマンドを叩いて確認する

$ php bot.php 自分のツイートに「Hello world !!」が表示されたでしょうか? とりあえず、今はベタ投稿ですが、bot.phpのプログラムを変更して、お好きな記事を投稿する準備ができました。 あとは、サーバーのcronに、起動する予定を登録して、ガンガンアップしましょう。 ただ、twitterは、ツイートに上限数があるので、気をつけましょうね。 次回は「応用編」で、このbotをもう少しツールっぽくします。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。