ツイッターのbotを作って稼ぎまくってる夢をみました。
なので、ツイッターのbotを作ります。
で、やってみたら意外と簡単でした。
「cronとかなんやねん?!」
って思っていましたが、とりあえず単純なつぶやきを繰り返すくらいならプログラムやサーバーの知識がなくてもできます。
ロリポップならcron操作時にユーザーインターフェイスがありますので楽チンです。
実験用のアカウントを取得したほうが良いと思います。
僕は使ってないアカウントがあったのでそれを利用します。
https://twitter.com/tousisintakun
ツイッターのbotを作るためにまず見たサイト
グーグル先生に
ツイッター bot 作り方
とか
ツイッター bot 稼ぎ方
とか
ツイッター もっと 稼ぐ
とか
お金 もっと 稼ぐ
とか。。
ツイッター関係なくなってきた俺です。。。
まぁ冗談はさておき、
ツイッター bot 作り方
で検索すると、ドットインストールのツイッターでbotを作る講座がヒットしました。(ドットインストールに登録して数年になるがbotの講座があるのを知らなかった。。しかも勉強したことのあるPHPです。)
基本的にドットインストールの動画を見ながら作業を進めました。
2,3時間程度でbotを作ることに成功しました。
途中、途中でつまずくところがありました。
つまずいたところ、解消方法とかググって調べたのでこの記事でシェアします。
【#02 ツイッターアプリを登録する】でつまずいたところ
まず、プログラムとか記述する前にツイッターのアプリケーション登録時の個人認証に手惑いました。
ドットインストール内では、
https://dev.twitter.com/appsにアクセス→ 空メール送信 → 受信したメール内のリンクをクリック
と解説されています。
この方法で何度か試してみましたが、
電話番号を登録できませんでした。再度お試しください。
と、何度も何度も言ってきやがる!!
青い鳥を焼き鳥にして喰ってやろうかと思いましたが、最近は野菜メインの食生活にしてるのでやめてやりました。
グーグルでいろいろ調べてみましたが、PCのブラウザでやると不具合がおこるらしい。
スマホのアプリからなら問題なくできるとのことだったので、ipodtouchから登録しました。
一瞬で終わりました。
あと、動画で解説されてる箇所に
Consumer secret
Access token
Access token secret
は見当たりません。
にありました。
【#03 ツイッターアプリを設定する】でつまずいたところ
Application typeも動画で解説されてる箇所にはありませんでした。
modify app permissionsを押したら、っぽいの出てきたので一安心。
【#04 必要なファイルを揃えよう】でつまずいたところ
このChapterでつまずいたところはありませんが、コーディングがめんどーでした。
コード打つのめんどーな人はコピペどうぞ。(あ、でもワードプレスの仕様でシングルクォーテーションとかが全角になるので気をつけてください。)
config.php
define(‘COSUMER_KEY’, ”);
define(‘COSUMER_SERECT’, ”);
define(‘ACCESS_TOKEN’, ”);
define(‘ACCESS_TOKEN_SECRET’, ”);
【#05 ツイッターのAPIを利用する】でつまずいたところ
コード打つのめんどーな人はコピペどうぞ。
動画の通りにequire_once(‘twitteroauth/twitteroauth.php’);
と打つとエラーが出るので
require_once(‘twitteroauth.php’);
require_once(‘config.php’);
$conn = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SERECT, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$result = $conn->get(‘account/verify_credentials’);
var_dump($result);
と記述。
文字化けしてる箇所があるが、情報を取得できているのでよしとします。(ローカル環境とロリポップで動作確認済み)
【#07 ボットを使ってつぶやこう】と【#08 エラーの修正をする】でつまずいたところ
コード打つのめんどーな人はコピペどうぞ。
文字化けしてる箇所があるが、情報を取得できているのでよしとします。(ローカル環境とロリポップで動作確認済み)
require_once(‘twitteroauth.php’);
require_once(‘config.php’);
$conn = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SERECT, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$params = array(
‘status’ => ‘TEST for bot’
);
$result = $conn->post(‘statuses/update’, $params);
var_dump($result);
成功しました。
TEST for bot
— tousisintakun (@tousisintakun) 2014, 12月 29
【#09 内容を時間帯によって変更する】でつまずいたところ
動画では時間帯によってつぶやく内容を変える記述をしています。
僕自身は時間帯によって変更するコードは打ってませんが、いつもお世話になってるコミュのURLをつぶやいてみました。
require_once(‘twitteroauth.php’);
require_once(‘config.php’);
$conn = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SERECT, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$params = array(
‘status’ => ‘アフィチャレコミュ楽しいよ!http://sns.ch.moshimo.com/’
);
$result = $conn->post(‘statuses/update’, $params);
var_dump($result);
??????????????http://t.co/cNqqDU8Ns1
— tousisintakun (@tousisintakun) 2014, 12月 30
文字化けてんじゃねぇかよ!!!!
ひき肉にしてやんよ!!!!
っと思いましたが、
アフィチャレコミュ楽しいよ!http://t.co/cNqqDU8Ns1
— tousisintakun (@tousisintakun) 2014, 12月 30
【#10 定期的にプログラムを実行する】でつまずいたところ
いよいよ、cronの登場です。
名前からして
「新しい言語とか覚えなあかんのちゃうん?!」
とか勝手に思ってました。
実際に、ドットインストールの動画では真っ黒の画面でコーディングしてます。
ビビりましたが、ロリポップではcronの設定はインターフェースが用意されているので簡単に設定できます。
けど、うまく動いてないっぽい。。
なんかエラーになる。。。
Status is a duplicate.
というエラー。
調べてみると、同じ文字列の投稿はできないらしい。(同じ文言をbotにつぶやかせる場合は10ツイートは開ける必要があります)
PHPでテキトーに時間を取得し、同じにならないように変更。
require_once(‘twitteroauth.php’);
require_once(‘config.php’);
$conn = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SERECT, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$today = date(“H:i:s”);
$params = array(
‘status’ => $today . ‘アフィチャレコミュ楽しいよ!http://sns.ch.moshimo.com/’
);
$result = $conn->post(‘statuses/update’, $params);
var_dump($result);
cronの設定を毎時15分につぶやくように設定しました。(15分以外のつぶやきはページを自分で読み込んでつぶやかせたものです。)
12:15:05アフィチャレコミュ楽しいよ!http://t.co/cNqqDU8Ns1
— tousisintakun (@tousisintakun) 2014, 12月 30
超簡単だったでPHP覚えたての人が最初のステップとしてbot作成は良さそうです。