--

--

コメント

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

プラプラ

CakePHPでのTwitterBot作成方法
非常に参考になりました。
やーんさんの実装方法とは
少し違う形にはなったのですが、
おかげさまで何とか動くものを
作ることができました。
http://plus-sys.jugem.jp/?eid=364
良質なエントリありがとうございました。

02

25

11:34

管理者にだけ表示を許可する

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

http://welcomevac201world.blog84.fc2.com/tb.php/84-7077d0e9

05

07

コメント

CakePHPでTwitterのbotを動かす。

今のお仕事のSEO対策の一つとして、
Twitterでなんかできないかなと思ってました。
そこで、Twitterへの自動ツイートができる
botを導入しようという流れに。

サイトがCakePHPで作成されているので、
そこにbotのプログラムを入れ、
cronで日次、毎時でツイートするようにしたいと思います。


まず、Twitterのbotとは。

Wikipediaより抜粋
http://ja.wikipedia.org/wiki/Twitter

bot (ボット)
定期的にニュースを投稿したり、遊びを目的として著名人や漫画・アニメのキャラクターを模倣した投稿を行う自動プログラムのこと。中には投稿の自動検索により捕捉した特定のキーワードに反応して、リプライや非公式リツイートを返してくるbotもある。


こんな記事も。。。でもちょっと寂しいです。

twitterでずっと仲良くしていた人がbotだった
http://d.hatena.ne.jp/coconutsfine/20090309/1236611519


深い、深いなぁ。
botも性能がいいものがたくさんあるみたいなので、
僕がフォローしている/されている人達の中にも、
宣伝だけしてくる人や、短縮URL連発の人も中にはいるので、
botもすごい数いるんだろうなぁと勝手に予想。

Twitterはメールアドレスさえあれば、
ログインできるので、何個でも作成できてしまうし、
RSSフィードやハッシュタグとかあるので、
宣伝なんかに使用するにはもってこいの素材なんでしょう。

「Twitterで会社が変わる!」みたいな本が
売れ筋ランキングの上位に入ってしまう現在、
弊社もその流れにきちんと沿うわけですね。


本題に戻り、
参考にしたサイトは以下のサイトです。

pha22.net
プログラミングができなくても作れるTwitter botの作り方
http://pha22.net/twitterbot/


頭ん中
PHPでTwitter APIのOAuthを使う方法まとめ
http://www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php


SDN Project
PHP+OAuthでTwitter
http://www.sdn-project.net/labo/oauth.html



【事前に準備が必要なもの】
1.Twitterのアカウント 1つ
2.PHP5.0以上が利用可能なサーバ 1つ
3.サーバの設定(Apache、cronの実行環境等)
4.ドメインの設定
5.CakePHP 1.2の準備
 最低でもCakePHP導入時のindexが表示され、
 かつ、何かのshellの実行テストが終わっている程度


それでは、bot導入の流れを説明します。

まず、Twitterにbotでログインして各種機能を利用するには、
OAuthという認証を設定する必要があります。

Twitterのbotで利用するアカウントでTwitterにログイン後に
https://twitter.com/appsにアクセス。
「新しいアプリケーションを追加」でアプリの情報を設定します。
途中の"アプリケーションの種類"は"クライアントアプリケーション"とし、
"Default Access type"は"Read & Write"に設定しました。

入力が終わったら「保存する」を押すと、
"Consumer key"と"Consumer secret"が得られるので、
これをメモ。


次に、Twitterのbotで利用するアカウントでTwitterにログイン後に
http://dev.twitter.com/apps/にアクセスし、
さっき登録したアプリケーションが表示されているので、
その名前か画像をクリック。
右カラムにある「My Access Token」を押すと、
"Access Token (oauth_token)"と"Access Token Secret (oauth_token_secret)"が得られるので、
これをメモ。


次に、http://pha22.net/twitterbot/にアクセスし、
最新版(記事執筆時はバージョン2.04beta)をダウンロードします。

zipファイルを解凍し、EasyBotter2.04betaの中身を確認します。
今回ダウンロードした時は、以下のようになっていました。

EasyBotter2.04beta
 ├PEAR
 ├bot.php
 ├data.txt
 ├EasyBotter.php
 ├log.dat
 └reply_pattern.php

EasyBotter2.04betaのフォルダ名をEasyBotterに変更し、
app/vendorsの下におきます。


今回は、CakePHPに導入するということで、
CakePHP風に手を加えていきます。

1.メッセージ達
 ・reply_pattern.php
 ・data.txt
 を、botとは思えないほど、感情込めて編集します。

 data.txtの中身は、こんな感じのを1000個くらい用意してみました。
 ○○です☆ミ相互フォローよろしくお願いします<(_ _)> #followmeJP #sougofollow
 ○○です☆ミ相互フォローしませんか!? #followmeJP #sougofollow


2.bot.php
 CakePHPのシェルを作成するため、今回は動きません。


3.EasyBotter殿を改名する
 CakePHP風にするため、EasyBotter.phpのファイル名をeasy.botter.phpに変更


4.setting.php
 上のほうで取得したキーとかを書く


5.shellを作成する。
 app/vendors/shells/easybotter.phpを作成しました。
 ソース↓

/**
 * Twitterのbot
 *
 * できること
 *  ・自動フォロー返し
 *  ・自動返信
 *  ・自動投稿
 */
App::import('Vendor', 'EasyBotter', array('file' => 'EasyBotter'.DS.'easy.botter.php'));

class EasybotterShell extends Shell {

    function main() {
        $this->out('Easybotter start');

        $eb = new EasyBotter();

        // フォローがあったらフォロー返ししましょう♪
        $response = $eb->autoFollow();

        // メッセージに自動で返信
        $response = $eb->reply(60,"data.txt","reply_pattern.php");

        // メッセージのランダム送信
        $response = $eb->postRandom("data.txt");

        $this->out('Easybotter end');
    }
}

?>


 今回のbotさんはcronの毎時指定で動かすため、$eb->replyの指定時間を60分にしています。


6.シェルの実行テスト

シェルは適当なところ(僕は$HOME/bin/hourly)に作って、
こんな感じです。

#!/bin/sh

cd "WEBROOT"に移動

./cake/console/cake easybotter



さぁ、動かしてみましょう!

まずは仮実行としてshellを直接実行します。
上述したshellの通りにコマンドを叩いてみると、
途中、include_pathが足りない!みたいなエラーが出たので、
php.iniにinclude_pathを追加したりしましたが、
案外あっさりと、ツイートしてくれました。


7.cron の設定

バッチ実行ユーザにてcrontab -e

01 * * * * $HOME/bin/hourly




8.コーヒーブレイク

一応、バッチの実行テストということで、
次の実行時間までまったり (´ー`)y─┛~~


う、うごいぃたぁぁぁあぁーー!



これで、完成!



さて、バッチ実行が開始されて早3時間。
現在、#followmeJPや#sougofollowのおかげもあって、
20名の方にフォローして頂いています。
ありがとうございます<(_ _)>

自動フォロー返し機能のおかげで、
どんどんフォロアーが増えていくのは、
シミュレーションゲーム好きな僕としては、
シムシティの人口をみているような気持ちです♪

そして、実際はSEO対策として始めたbot制作なのですが、
なんと、すでに短縮URL経由で25回もアクセスが!!
この時点で皮算用ですが月間750ページビュー!
このブログの3倍以上のアクセスです♪

短縮URLのbit.lyは、
このURLを経由して本当のURLへアクセスした回数を閲覧できるので、
Google Analyticsと併せて、
アクセス解析として利用したいと思います。

けっこうまとめるのに苦労しましたが、
やってみると簡単!

CakePHPでShellの実行を既に行っている人がやれば、
3時間くらいでさっくり終わると思います。

僕が一番時間がかかったのは、
data.txtを考える作業でした。
語彙の足りなさを改めて痛感しました。
(;´∀`)・・・うわぁ・・・



次の展開なのですが、
こんなサイトもみつけました。

HAPPY*TRAP
CakePHPでTwitterのOAuth認証を利用するライブラリ
http://www.happytrap.jp/blogs/2010/01/16/1713/

Twitterのつぶやきを自サイト上でもできるんですねー。
今後は、SNSの機能の一部として、
Twitterへの同時投稿が可能になるといったことが
できるといいかもですね。
関連記事
スポンサーサイト

プラプラ

CakePHPでのTwitterBot作成方法
非常に参考になりました。
やーんさんの実装方法とは
少し違う形にはなったのですが、
おかげさまで何とか動くものを
作ることができました。
http://plus-sys.jugem.jp/?eid=364
良質なエントリありがとうございました。

02

25

11:34

管理者にだけ表示を許可する

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

http://welcomevac201world.blog84.fc2.com/tb.php/84-7077d0e9

ようこそ!

ブロとも申請フォーム

ブロ友申請大歓迎です!
一覧に表示されるので自動で相互リンクになります!

>> ブロ友申請はこちら <<

検索フォーム

最近のコメント

メールフォーム

名前:
メール:
件名:
本文:

FC2ブログランキング

人気ブログランキング

人気ブログランキング

ブログ村

アクセスランキング

[ジャンルランキング]
育児
1077位
アクセスランキングを見る>>

[サブジャンルランキング]
パパ育児
72位
アクセスランキングを見る>>

やーんは今、

ブロとも一覧

Designed by

Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。