超簡単!ツイッター・ボットを自前で動かす(2)

ツイッター・ボットオペラ対訳プロジェクト管理人です。先週に引き続き、「定時つぶやき」ボットを自前で設置するまでの体験記、その第2回です。

オペラ対訳プロジェクトBOT
ボットを自前で動かす(1)

前回、ツイッター・ボットを動かすための作業をふたつに分けました。

1.プログラムを作って設置する
2.自動化する

今回は、EasyBotter を利用して1.を実現する流れを説明します。


EasyBotter とは何か


EasyBotter が提供するサービスも大きくふたつに分けて考えた方がいいと思います。

A.プログラムのテンプレート(ひな形)を提供する
B.ツイッター認証のアプリケーション代行サービスを提供する
補足記事:2013年11月2日

このふたつのサービスも、やはり全く独立していて別個のサービスだと私は思うのですが、こういうのをまとめて説明されると文系人間にはわかりにくかったりするものです。

ふたつのサービスは全く別物ですから、「A.だけ利用する」あるいは「B.だけ利用する」ということもできます。でも文系人間は両方利用させてもらったほうがいいでしょう。


必要なソフトウェア


ブラウザ(IEなど)はもちろん必要ですが、そういうふつうパソコンには入っているソフトウェアは別にして、おそらく新たにインストールしなくてはいけないであろうソフトがあります。「テキストエディタ」と「FTPソフト」です。

用意するもの@EasyBotter 非公式wiki

「テキストエディタ」は、非公式wikiで紹介されているソフトの中では「TeraPad」がメジャーなんではないでしょうか。私は「秀丸エディタ」を使いました。ちなみに Windows にインストール済みのソフト「メモ帳」ではこのプログラムを編集できません。

「FTPソフト」は昔ながらのホームページ作成には欠かせないソフトなのですが、ブログやツイッターをやる人が増えて、今ではあまり使われなくなっているかもしれませんね。私は「FFFTP」を使いました。


テンプレート(ひな形)をダウンロードする


こちらに行ってプログラムのテンプレート(ひな形)をダウンロードしてください。2012年2月時点では、「2.05」をダウンロードすればよいです。

EasyBotter ☆ダウンロード

「EasyBotter2.05.zip」というファイルをダウンロードできましたか?これを解凍してください。最近のパソコンには「解凍ソフト」はインストール済みだと思うので、上の「必要なソフトウェア」で紹介しませんでしたが、解凍できなかったら検索して勉強してください。

解凍すると「EasyBotter」というフォルダと、そのフォルダの下にいくつかファイルとフォルダが出てきます。

EasyBotter ☆ファイルの構成

「EasyBotter」というフォルダをまるごと、自分のわかりやすい場所に移動しておくとよいと思います。私は「マイドキュメント」の下に移動しました。


プログラムのテンプレート(ひな形)をカスタマイズする


いよいよ、プログラム書きに挑戦です。でも怖れることはありません。実際はプログラムを書くことなんてほとんどしません。プログラムの「テンプレート(ひな形)」ができあがっているので、それをちょっとあなた用にカスタマイズするだけです。

さっき解凍したフォルダの中にあるファイル、ふたつだけ、編集します。編集には「テキストエディタ」を使ってください。黄色のところを変更して保存します。

 ファイル名: bot.php 
//$response = $eb->autoFollow();
//$response = $eb->postRandom("data.txt");
//$response = $eb->postRotation("data.txt");
//$response = $eb->reply(2,"data.txt","reply_pattern.php");
//$response = $eb->replyTimeline(2,"reply_pattern.php");
  ↓↓↓
//$response = $eb->autoFollow();
$response = $eb->postRandom("data.txt");
//$response = $eb->postRotation("data.txt");
//$response = $eb->reply(2,"data.txt","reply_pattern.php");
//$response = $eb->replyTimeline(2,"reply_pattern.php");

「//(スラッシュふたつ)」が外れてますね。「//」が頭にある行は、コンピュータは読まずに無視するという決まりになっています(コメントアウトって言います)。それを外したということは、その行だけ「実行せよ」と命令しているわけです。外した行には「postRandom」「data.txt」とあるから「テキストデータからランダムに拾ってつぶやけ」ってことだなと想像が付くと思います。その他の行の命令文もなんとなく想像が付くと思います。もし「ランダム」ではなく「順番に」つぶやかせたいなら「//」を外す行を変えればいいのです。それぞれの行の説明はこちらに書いてあるので、いろいろやってみたい方はどうぞ。

 ファイル名: setting.php 
$screen_name = "opera_taiyaku"; //botのid名
$consumer_key = "WtNt5W6js77cFHvKyVgf6Q"; // Consumer keyの値
$consumer_secret = "h3In28YiiRxtg4PTpkhPmrlJSGOCTG2oh3hslQ"; // Consumer secretの値
$access_token = "xxxxxxx"; // Access Tokenの値
$access_token_secret = "xxxxxx"; // Access Token Secretの値

黄色の「opera_taiyaku」は「オペラ対訳プロジェクトBOT」の「ツイッターID」です。ここにはあなたのIDを代わりに入力することになります。緑の「xxxxxxx」2カ所は後ほど説明します。コードを取得して入力することになります。上で説明した「B.ツイッター認証のアプリケーション代行サービスを提供する」と関係します。

以上、ふたつのファイルの最低4カ所いじるだけで、プログラム書きはおしまいです。簡単でしょ。

(2012年11月5日追記) Easybotter ver.2.0.5 の場合、こちらの記事を参照してプログラムの内容を修正する必要があります。→ 超簡単!ツイッター・ボットを自前で動かす(4)


つぶやきネタを充填する


同様に「EasyBotter」フォルダの下にあるファイルを開いて、「定時つぶやき」するネタを書き込んで保存します。「テキストエディタ」を使ってください。

 ファイル名: data.txt 
良いお友達のままでいましょうね!by アラベラ
サロメ。来い来い。褒美をやろう。by ヘロデ

ネタはネタ毎に改行します。例えばこのように2行記入すれば、アラベラ嬢とヘロデ王の台詞いずれかが、ランダムに選ばれてつぶやかれます。

さて、「テキストエディタ」で編集するときに注意しておく必要があるのが、保存するときの「エンコードの種類」です。「テキストエディタ」は常に『文字コードはUTF-8、改行コードはLFに設定』して使う必要があるのです(それが何を意味するかは気にしない)。

「テキストエディタ」上部のメニュー欄を探すとそれらしいメニューがあるかもしれません。確認してみてください。ちなみに「秀丸エディタ」の場合「ファイル(F)>エンコードの種類」というメニューで確認できます。もし、ここで何かうまくいかないまま設置すると、プログラムが動かなかったり、動いてもつぶやきが「文字化け」します。

ただしおそらく、何も考えず上書き保存をすれば、「テキストエディタ」が「エンコードの種類」を自動判別して保存してくれると思うのですが、どうでしょうか。「秀丸エディタ」は自動判別しました。


ボットはどうやってわたしのツイッターにログインするのか


ツイッターを使うとき「ログイン名」と「パスワード」でログインして初めてつぶやくことができます。上で作ったプログラムはどうやってログインするのでしょう?

それを解決してくれるのが「EasyBotterとは何か」で挙げた「B.ツイッター認証のアプリケーション代行サービス」です。

すでに「ツイッターID」は取得済みですか?まずその自分のツイッターにログインしてください。そのまま、ブラウザを閉じないで、こちらのページから「→→→Twitter内のOAuth認証用ページ←←←」をクリックしてください。

EasyBotter OAuthの設定について

「Access Token」と「Access Token Secret」ふたつの「英数字の長い文字列」が表示されます。それらをコピーして、上の「ファイル名: setting.php」で説明した、緑の「xxxxxxxxx」のところにそれぞれ埋め込んでください。

この「Token」は絶対に内緒にしてくださいね。これが漏れてしまうと、これを使って誰かがあなたのツイッターでつぶやくことができてしまいます。

この代行サービスで認証すると、つぶやきに「EasyBotterから」という表示がでます。→
EasyBotterに「代行業務」をしてもらっているからだと思ってください。どうしてもこの部分を自分の好きな表示にしたいとこだわる方は「OAuth認証」で検索して勉強してください。


設置するサーバを用意する


設置するサーバは『PHP(5以上)が使えるレンタルサーバ』でなければならないのですが、これを読んで「幸之助が何か?」と思った人は、自分の使っているサーバが対応しているか調べたり、使えるサーバを探すなんてことは即刻やめて、一択でいいでしょう。オペラ対訳プロジェクトが載っている「アットウィキ」の兄弟、無料サービス「アットページズ」を使えばいいと思います。(→訂正記事:2018/4/14)

@PAGES(アットページズ)


プログラムをアップロードする


「FTPソフト」を使って、プログラムをアップロードします。「FFFTP」の場合、プログラムのフォルダをまるごと「FFFTP」の上にドラッグ&ドロップすると、アップロードが完了します。転送モード(アスキー or バイナリー)というのがあるのですが、たぶん「FFFTP」は自動判別して「アスキー」でアップロードしてくれたんではないかと思います。

ファイルをアップロードできたら、続けて「FTPソフト」を使って、ファイルのパーミッションを変更します。上で作ったプログラムが自分でファイルを書き換えたりできるようにします。(たぶんそーいうことだと思う)

次の三つのファイルを、それぞれ「FTPソフト」上で選択して、右クリックしてください。「属性変更」というメニューが出ると思うので、そこに見えている数字を「644」から「666」に変更します。

log.dat
reply_pattern.php
data.txt

ただし、これをやらなくても「ランダムに定時つぶやき」をさせるだけなら、プログラムは動くと思います。あと、公式ページには『tw.txtとreply_pattern.phpとlog.datのパーミッションを666に設定してください。』とありますが、「EasyBotter 2.05」ではファイルの構成が変わっていて「tw.txt」は存在せず、そのファイルは「data.txt」と読み替えればよいのだと思います。


手動でプログラムを動かす


アップロードしたプログラムを手動で動かしてみます。「bot.php」というファイルにアクセスすれば動きます。このファイルの場所は、例えば、アットページズにアップロードしたのであれば、こんなURLになるはずです。

http://wwwxx.atpages.jp/xxxxx/EasyBotter/bot.php

黄色の部分には、あなたのサーバの番号とアットページズIDが入ります。

これを、ブラウザのアドレスバーに入れて、Webページを開くのと同じ感覚で実行します。

どうですか?成功すると、ブラウザ画面にはつぶやいたネタが表示されて、あなたのツイッター上には同じネタがつぶやかれているはずです。

携帯電話からでも手動で動かせますよ。URLは同じです。やってみてください。


小ワザ


ブラウザでプログラムを設置した「フォルダ」を開いてみてください。例えばアットページズにアップロードしたのであれば、こんなURLです。

http://wwwxx.atpages.jp/xxxxx/EasyBotter/

アップロードしたプログラム一覧が表示されるはずです。なんとなく見えてしまうのが気持ち悪いです。そう思う人は、フォルダに「index.html」という名前のファイルをなんでもいいのでアップロードしておけばよいと思います。サーバ上にEasyBotter関連のフォルダはたくさん出来ていますが、上位のフォルダだけいくつかにしかけておけばいいと思います。これでいきなり中味が見えるということはなくなります。

とはいえ「なんでもいいのでアップロードしておけば」と言われるのが、文系人間にはいちばん困るんですよね。もしよければ私が作った「index.html」を使ってください。こちらからダウンロードして解凍すると「index.html」ファイルが出てきます。

ダウンロード


これで手動ボットは完成


これでふたつの作業のうち1.は完了です。

1.プログラムを作って設置する
2.自動化する

自動化しないのであれば、これでおしまいでも構いません。携帯電話からアクセスして都度手動でボットを動かすのでもいいのです。

でも、自動的につぶやく「定時つぶやき」ボットに仕上げたいのであれば2.を実現する必要があります。次回「自動化」に挑戦です。

EasyBotter
ランキングを見る(にほんブログ村 オペラ)
ランキングを見る(人気ブログランキング クラシック)

にほんブログ村 外国語ブログ 通訳・翻訳(英語以外)へ

この記事へのコメント

この記事へのトラックバック