ホーム > twitter | Web > twitter-bot

twitter-botのアーカイブ

EasyBotterを使ったBotが停止していたのを復活

botが停止して何事かとおもいきやAPIの仕様変更だったのですね…

bot.phpを叩いて

object(SimpleXMLElement)#10 (1) {
["error"]=>
string(31) "Sorry, that page does not exist"
}

がでてきたので検索したら発覚

以下EasyBotter 非公式wiki – 最新のAPIに変更 – @ウィキモバイルを参照に直しました。
スクリプトで変更しようと思ったら上手く行かなかったのでEasyBotter.php の下部にまとまっている API 群のURLを手動で書き換えますた

https://twitter.com/statuses/update.xml

http://api.twitter.com/1/statuses/update.xml

http://twitter.com/statuses/friends_timeline.xml

http://api.twitter.com/1/statuses/friends_timeline.xml

http://twitter.com/statuses/replies.xml

http://api.twitter.com/1/statuses/mentions.xml

http://twitter.com/statuses/friends.xml

http://api.twitter.com/1/statuses/friends.xml

http://twitter.com/statuses/followers.xml

http://api.twitter.com/1/statuses/followers.xml

http://twitter.com/friendships/create/”.$screen_name.”.xml

http://api.twitter.com/1/friendships/create/”.$screen_name.”.xml

もう一回bot.phpを叩いて再起動確認
よかったよかった(*´∀`)!
Easybotter.phpの下部の変更後phpも載せときますのでまるっとコピペでok

    //基本的なAPIを叩く
    function _setData($url, $value = array()){                
        $response = $this->consumer->sendRequest($url, $value, "POST");  
        $response = simplexml_load_string($response->getBody());                
        return $response;
    }    
    function _getData($url){                
        $response = $this->consumer->sendRequest($url,array(),"GET");  
        $response = simplexml_load_string($response->getBody());                
        return $response;
    }    
    function setUpdate($value){        
        $url = "http://api.twitter.com/1/statuses/update.xml";
        return $this->_setData($url,$value);
    }            
    function getFriendsTimeline(){
        $url = "http://api.twitter.com/1/statuses/friends_timeline.xml";
        return $this->_getData($url);                
    }
    function getReplies($page = false)
    {
        $url = "http://api.twitter.com/1/statuses/mentions.xml";        
        if ($page) {
            $url .= '?page=' . intval($page);
        }
        return $this->_getData($url);
    }        
    function getFriends($id = null)
    {
        $url = "http://api.twitter.com/1/statuses/friends.xml";        
        return $this->_getData($url);
    }    
    function getFollowers()
    {
        $url = "http://api.twitter.com/1/statuses/followers.xml";        
        return $this->_getData($url);
    }    
    function followUser($screen_name)
    {    
        $url = "http://api.twitter.com/1/friendships/create/".$screen_name.".xml";    
        return $this->_setData($url);
    }
}    
?>    

外部リンク

EasyBotter 非公式wiki – 最新のAPIに変更 – @ウィキモバイル

twitterでbotを動かすよ~初期setting編~

益田龍一 (masuda_r) on Twitterを育成して、そろそろ新しく鳥口守彦 (toriguchi_m) on Twitterを全自動にしようとしているみつ。です。
ということで備忘録も兼ねていろいろ調整!

まずやること

twitterアカウント作る
これないとはじまらない。メアドはgmailのエイリアス機能で登録しておきましょう。
サブメールみたいなものが登録なしですぐ出来ます!

gmailID+自由な文字列@gmail.com
MITU+toriguchi_m@gmail.com

とかにすれば一発!
参考:別名アドレスを使用してメッセージを受信できますか。 – Gmail ヘルプ

twitter ボットジェネレーターでひとまず運営
セリフとかmemoしていれば出来ます。とりあえず運営。
twitter ボットジェネレーター – 簡単にbotを作成
※cron移行後は使ってないよ もしものために温存する
twilogに登録する
いろいろ分析できて便利。
Twilog – Twitterのつぶやきをブログ形式で保存
Conversationlist登録
これも一応。あとで利用出来るかも知れない 
ConversationList.com – A conversationlist is your attention transformed into a tweetstream.

とりあえずこれだけで簡易botになります!

URLに説明書ページ(サイト)を用意しておく

このbotは何のbotか、何の言葉に反応するのかなどを説明するため。
自分のサイトの1ページか、新たにブログを借りて作成するといい。
自分のためのやることメモにもなって便利。

EasyBotterでプログラム

ここからは、サーバーをレンタルしている人向けです。
しかもサーバーでphp5以上が動く人。
無料のサーバーで動くのは@PAGESとか?

まずはプログラミングができなくても作れるTwitter botの作り方からテンプレダウンロードして編集!
ページの真ん中の★ダウンロード下の
 バージョン2.04betaをダウンロードする(最新版)
 バージョン1.42をダウンロードする(安定版)
どちらかを。因みに最新版にしました。
以下ファイル一覧 編集memoです

  1. bot.php
setting.php
これ設定しないとうごかん
ID入力。
Create cool applications! | dev.twitter.com
でOAuthクライアントの登録する。 

  1. アプリケーションを作るを押す。
  2. アプリケーション名がtwitterのfromに表示される名前になります。
    • ※他の人と被っていると登録できません
    • ※どうやら後で変更可能のようです
  3. クライアントアプリケーションを選択
  4. Read & Writeを選択
  5. アイコンはあってもなくても
  6. 単語入力して I Accept を選択

できたらAPIキーなどのページへ。以下の文字列をsetting.phpへ書き込みます。
Application detailsのページで

  1. Consumer key
  2. Consumer secret

をコピペ。
Access Token Requisitionで

  1. Access Token (oauth_token)
  2. Access Token Secret (oauth_token_secret)

をコピペ。
参考PHP+OAuthでTwitter – SDN Project

bot.php
$response = $eb->postRandom("data.txt"); 
$response = $eb->reply(2,"reply.txt","reply_pattern.php");
$response = $eb->replyTimeline(5,"tl_reply_pattern.php");

これをコピペして上書きしました。

easybotter.php
//表示用HTMLのtitle変更

制作したファイル

既存の

bot.php(cronで叩くやつ)
EasyBotter.php(プログラム関数)log.dat(log)setting.php(プログラム)
data.txt(基本台詞)reply_pattern.php(特定の言葉に特定の返信)

に新たにファイル加えます。

bot.phpをコピーしてbot_post.php bot_reply.php bot_tlreply.php
reply.txt
reply_pattern.phpをコピーして tl_reply_pattern.php

アップロード

※uploadするときbot.txtとreply_pattern.phpとlog.datのパーミッションを666に設定するのわすれない

とりあえず手動は成功。

cronで全自動にする

うちはGAEつかってます
Google App Engineで新規application作成
Applications Overview
それで
TwitterBOTを作る手順メモ
のcron項目を参考に
yamlファイルとpythonファイル作成、GAE専用ランチャーでうp

これで全自動になります!
あとで詳細書く…
※増えます

easybotterによるtwitter botのcronをXREA+で動かしたい

益田龍一 (masuda_r) on Twitterを育ててるんですが
phpとか感で編集してたので何がなにやら\(^o^)/うへえ
プログラミングができなくても作れるTwitter botの作り方 – cronの設定をするとかmi2maruのブックマーク – cronを見て編集中
あ、編集はテキストエディター EmEditor – Unicode、巨大ファイルにも対応する Windows用定番テキストエディター!でやってます

たとえばXREA plusというレンタルサーバーは年間2400円という安い価格だけどcronが使えます。ただ、cronに制限があって、多くても一時間に1回までの頻度でしか実行できません。一時間に一回何かをpostするだけのタイプのbotなら問題ないけど、もっと頻繁に動かしたい場合はちょっときついですね(XREA plusでは複数のcronを設定できるので、一時間に一回のcronを少しずつ時間をずらして何個も組み合わせて回数を増やすという手は使えますが)。

うちのサーバーはXREA+だったの忘れてた\(^o^)/
今のcronはツンデレ名高いGAEを使用してます。一応動いてくれてるのかな…?

ということでcronをXREA+で動かしたい欲にかられています…!
botのリプライが上手くかえらないのであった…
cronを2つに分けて実行とかそんなの思いつかなかった…
案山子さんありがとう!

XREA+のcron規約

xrea+のcronjobには10個設定tabがあります

※ ジョブの最大実行時間は3分です。それを超えるものは強制停止されます。
※ スクリプト名の後に「 >/dev/null 2>&1」を付けていただきますと結果・エラーメールを破棄できます。
※ ジョブの間隔は最短で1時間に1回とさせて頂いております。
※ ジョブの負荷はCGI負荷として加算されます。
※ 改行コードは必ず「LF」で指定して下さい。

って書いてあるのでつまり10個ずらして設定すればいいのか…!
まあおれ

CRONTABの設定方法、シェルスクリプトの記述方法

なんてわかんないけどね…!

\(^o^)/ということでcronとphpのお勉強するわ…

CRONTABの設定方法、シェルスクリプトの記述方法

とりあえずシェルスクリプトから…

#!/bin/sh
#PHP
/usr/local/bin/php /virtual/ユーザ名/public_html/phpまでのぱす/bot_reply.php
exit

文字コードはUTF-8 改行コードはLF パーミッションを 705
(BOM落としてUTF-8Nにしてみた…)

XREAのcronジョブページで

0 * * * *
/virtual/ユーザ名/すくりぷと.sh >/dev/null 2>&1

設定する。
プログラミングは階層上のほうがいいのかなーとおもって直下にしたんだけど別に階層下の方でも関係なかったですか…?わかんない…
※追記XREA で cron の設定 | すぐに忘れる脳みそのためのメモ
に/直下うpって書いてあったからなおした

現在動くか待機中…どきどき…
い ま だ う ご か な い \(^o^)/1

参考!
とあるL点の藻屑日記 – 俺でも作れたTwitter bot
XREA で cron ジョブを設定してシェルスクリプトを書いて PHP を起動させてメールを送信 | ウェブル
PHP メモランダム・・・XREA サーバでの cron 利用例
小粋空間: CORESERVER / XREA にcron ジョブ(Movable Type 4 の run-periodic-tasks)を設定する
xreaでcronを使ってバッチ処理(定時処理)する方法のまとめ – タダキョク!管理日誌
utf8とutf8Nって? (タスクマザー)
cronでcannot execute binary file – XREA&CORE SUPPORT BOARD

続く!

  1. 改行コード間違えてた…エラーメールきたこれ []

ホーム > twitter | Web > twitter-bot

アーカイブ
    あわせて読みたいブログパーツ
    フィード
    メタ情報

    ページの上部に戻る