レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
Twitter Bot初心者質問スレ
どんな初心者レベルの質問でも質問していいスレッドです。
内容もTwitter Botに関するものなら何でもありです。phaさんのスクリプト以外の質問もOKです。
でも返事が返ってくるかどうかはたまたま分かる人がいるかどうかなので、返事が返ってこなくても泣かない。
返答してくれた人にはお礼をね。
3で『bot宛の返信内容(差し出し垢名入り)を、
そのbotのTLにリアルタイムで表示させるbotが作りたいんですが、
参考になるスクリプトはありますか?「つくったー」のようなしくみのbotです。』
という質問をした者ですが、乱文の為、返答がいただけません。
「こう質問したら答えてもらいやすいのでは?」的な
アドバイスをいただきたいです。よろしくお願い致します。
>>24
悪いんですが、ゴールがよく見えません。
つくったーというのは、@tsukutter ですか?
その機能は…webが見えない…。
察するところ、
> @hogeから「@bot 機能紹介文」
とmentionを受けると、
> 「機能紹介文 from @hoge」
とツイートすること、ですか?
流れとしては、API で mention を取得して、本文から"@bot "を削除、
"本文 from @".$screen_name とツイートを作成、updateする、ですね。
Easybotter1.42 の reply_random.php を改造するのが近道でしょうかね。
あと、リアルタイムというほどAPIを叩けるかという問題は残ってますが。
EasyBotter2.03betaを使用。
@で話しかけられた時の反応が、期待と違う動作で悩んでいます。
bot.phpを叩くと、data.txtからランダムで発言することは出来ているので、
この状態から、bot.phpでbotの動作を指定する
$response = $eb->postRandom("data.txt");
にコメントを入れ、
$response = $eb->reply(2,"data.txt","reply_pattern.php");
からコメントを外しました。
これでbot.phpを叩いてやれば、それまでと同じようにdata.txtから
ランダム発言が続くと思っているのですが
現状は「2分以内に受け取った@はないようです。」のメッセージが現れるのみで
data.txtの内容を吐き出してくれません。
ネットで検索もしてみましたが、こういった事象は見つけられませんでした。
御教授よろしくお願いします。
>>26
そこは反応するキーワードがあればreply_pattern.phpから返事をする
キーワードがなければdata.txtからランダムに返事をするというように
プログラムされているので、
$response = $eb->reply(2,"data.txt","reply_pattern.php");
に戻してreply_pattern.phpに入っているサンプル(おはよなど)を消したらどうでしょうか?
もっとスマートな方法があれば他の方、よろしくお願いします
つまづいてしまったので質問させてください。
botを設置するところまではできたのですが、何十分待ってもメッセージを投稿してくれません。
何度か自分でtwitter本家からメッセージを入れたり、@で話しかけてみても反応なしです。
bot.phpにアクセスすると
Twitterへの投稿に成功しました。
@○○○_botに投稿したメッセージ:※私が直接webで打ったメッセージが表示されてます http://twitter.com/ ○○○_bot/status/.....
2分以内に受け取った@はないようです。
と表示されます。
使っている環境はEasybotter2.0、サーバーは@pages、cronはGAE-Cron様をお借りしています。
どうかよろしくお願いします。
>>26
reply() は mention があった時に初めて発動します。
つまり、cron で呼ばれようと mention が無ければ発動しません。
定期ポストが欲しかったら、postRandom か postRotation が必要です。
>>28
テンプレ使用推奨w
【バージョン】Easybotter 2.03beta
【設置鯖名】@pages
【PHPのバージョン】
【実行】GAE-Cron
【手動】動く
【不明点など】botを設置するところまではできたのですが、何十分待ってもメッセージを投稿してくれません。
手動でアクセスして無事投稿できているのなら、cronがうまく叩いてくれていないという話かと。
GoogleAppEngineのcronって、動作報告出力を出してくれないんでしたっけ?
もし確認できるなら、エラーなりが出てるのではないかと。(URL違いとか)
>>30
>GoogleAppEngineのcronって、動作報告出力を出してくれないんでしたっけ?
見れますよ。LogのRequests onlyで。風柳さんところGAEcronの場合はどうなのかは分かりませんが。
cronを叩くアドレスがまちがっていると思われますが、もう少し情報がほしいですね
あと、たまに息継ぎのようにこける時があるので、たまたまそれに当った場合も考えられます
>>30
手動ですら投稿できてません。
twitter上で直接入力した内容が映ってるだけです。
先ほどGAE-cron様の設定画面を見たら
■最終起動:2010/02/19 18:00(JST) 結果:code: 503 ※次回予定:2010/02/19 18:10(JST)
となってましたが、相変わらず新規投稿はできてません。
>>31
投稿自体ができていないので、cronではなく設置に問題があるようです。
こんにちは、質問させていただきます。
テンプレお借りしますね。
【バージョン】Easybotter 2.03beta
【設置鯖名】@pages
【PHPのバージョン】php-5.2.6
【実行】手動()
【手動】最初は動いた
【不明点など】
手動での動作確認の段階です。
bot.phpへアクセスすることによってランダムで発言するところまで作りました。
その後、リプライが正しく動作するか確認した後、bot.phpにアクセスしても発言しなくなってしまいました。
botに返信→bot.phpにアクセス→返信内容が返ってくる。→bot.phpにアクセス→発言しない
しかし、botに返信→bot.phpにアクセスすれば返信は返ってくるという状態です。
時間を置いてbot.phpにアクセスしても変化ありません。以下のような、先ほどの返信の投稿が成功したという表示が出るでけです。
Twitterへの投稿に成功しました。
@★★★_botに投稿したメッセージ:@★★★ あさきゆめみし ゑひもせす URL
サーバーからファイルを消して、アップし直せば発言するようになるのですが、
やはりリプライを試すと発言しなくなってしまいます。
自分ではお手上げです。
どなたかアドバイスお願いします。
それはbot.phpの設定がどうなっているかじゃないかな
bot.phpはどこをコメントアウト(//を削除)してますか?
>>34
リプライ(返事)をするパターンが少ないので
twitterの重複規制に引っ掛かっている可能性が高いです。
もう少しリプライのパターンを増やしてみてはどうでしょうか?
>>34 です。
>>35 >>36
お二人ともありがとうございます。
>>36 さんの言うとおりリプライのパターンが少なかったようです。
7個だったのを20個に増やしたら直りました!
すみませんサーバにupして手動で動作確認もできたので少しreply_pattern.phpの言葉を増やして再びupしたら次のエラーが出るようになってしまいました><
Parse error: syntax error, unexpected ';', expecting ')' in /usr/local/www/htdocs/gonbe1818/public_html/gon18bot2/reply_pattern.php on line 157
157行目にエラーがあるよってことだと思うのですが157行目は ); しかありません。試しに新しいのをDLしてupしてみてもサイトの説明の所をコピペして貼り付けてみても同じエラーが出てしまいます。どうしたらよいのでしょうか?どなたかご指導おねがいします><
>>25
うらさん
乱文にも関わらず丁寧なお答えありがとうございます!
目指すbotは、うらさんのお察しの通りです。
ヒントがたくさんいただけて、暗闇に光が見えてきました。
一歩ずつ進めます!ありがとうございました。m(_ _)m
>>23 と同じ症状で困っています。
ただ真っ白な画面が出るだけで、何がエラーになっているのかわからず
途方に暮れています。
【バージョン】Easybotter 2.03beta
【設置鯖名】ロリポ
【PHPのバージョン】5.2.6
【実行】GAE-Cron
【手動】→ここがダメ。○分以内に受け取った@はない、のメッセージのみ出たり出なかったり
一度は自動でちゃんと動くようになったのですが、突然この状態になってしまったので混乱してます…
>>40
これもリプライパターン不足じゃないでしょうか。
twitterの重複発言規制にひっかかると、botは正しく動いているので
エラーは表示されないのに、動作がしてないように見えるということが
私にもあったので。
2.0スレphaさんのコメントだと
バージョン2.0以上はPHP5以上でないと動きません。
>真っ白になるというのは、bot.phpの中身の設定がうまくいってなくは>ないですか。
との事のようですが…
あとロリポで2.0が動かない報告は他にもいくつかあり、設置するサーバーを
変えたら動いた報告もあるので、サーバーを変えてみてはどうでしょうか?
あともう一度サーバーの仕様とマニュアルを見てみるとか
初めまして!
今回twitterbotの制作に励んでいるのですが、
試しにbotを動かしてみる、というところで挫折してしまいました。
サーバーはTOK2を利用しています。
サーバーに上げたファイルは、
form.php
post_random.php
reply_pattern.php
reply_random.php
tw.txt
以上のファイルです。
しかし、post_random.phpを開いてみても、バグったようなよくわからない文字が出てくるだけで…
どうしたらいいのでしょうか?
何かほかに私が回答することがございましたらお気軽にお申し付けください。
>>38
エラーが出ている上の行に問題はありませんか?
「),」は足りていますか?「",」は抜けていませんか?
そこらへんを確認すれば大丈夫だと思います。
>>40
属性は666ですか?
私は属性を変更していなかったために真っ白になったことがありました。
一度ご確認下さいねー。
ご回答ありがとうございます^^
質問なんですが、上げたファイルの属性を全て666にするのでしょうか?
>>46
用意したサーバーにファイルをアップロードしてください。
そしてtw.txtとreply_pattern.phpとlog.datのパーミッションを666に設定してください
となっていますがどうでしょうか?
あとcronの事を詳しく教えていただきたいです><
>>48
具体的にcronの何が知りたいのか教えてくれるとありがたいです
(↑日本語変ですね、cronの設定を知りたい、とか、そういう事です)
あ、すみません。
cronの設定が知りたいです。
あと、パーミッションはその3つ意外は初期値のままでいいんですよね?
>>50
問題ないです。<パーミッションの設定
cronの設定ですけど、TOK2でcronの設定は可能なんですか?私が見つけられないだけかな…
わ、わかりません…(汗
たぶん無理だと思うので、
Google App Engineを利用しようと思っています。
>>52
http://d.hatena.ne.jp/furyu-tei/20100115/gaecronclub
reoさんわざわざありがとうございます。
とても参考になりました^^
これから頑張ってきます。
ご回答ありがとうございましたー!
今日はこれで失礼いたします。
>>54
はい。色々大変でしょうが、頑張って下さいませ。
テンプレ使用推奨です。
【バージョン】
【設置鯖名】 レン鯖名/自宅鯖
【PHPのバージョン】
【実行】 CRON鯖名/ブラウザ自動更新/手動/他
【手動】 動く/動かない
【不明点など】 (エラーメッセージがあればコピペ推奨)
初めまして!
ちょっと行き詰ってしまったので本当に低レベル初心者な質問させていただきます><;
昨日からちょくちょくbotを「twitter bot GENERATOR」さんのほうで作り始めていて、『話しかけられた相手の名前』を文章内に入れたいのですが、色々探ってみたところ「twitter bot GENERATOR」さんのほうではそのような設定はできない事を知りました。
そこで『話しかけられた相手の名前』を入れるのには、http://pha22.net/twitterbot/ さんのところでソフト(バージョン?)をダウンロードしてそれでbotの内容を作る という方が多いようでして、、
①そのソフト、cron、ダウンロードに関してなんですが、無料で使用できるんですか?
②うちはFTPサーバーなんですが「普通にcronを使う」の方でよろしいんですか?><;
色々初歩的な事を聞いてしまい本当にすいません><;
是非教えて下さると嬉しい限りです、よろしくお願いします!
>>57
1については、Ver2の「バージョン2.0について」、Ver1.4の「はじめに」を読めば書いてあります。
2については文章の意味がわからないので回答できません
初めまして。
reply_pattern.phpとlog.datとテキスト以外のパーミッションを教えていただけないでしょうか・・
どうも間違えて変更しまったようなんですが、元のパーミッションを覚えていないんです。
サーバーはさくらです。
よろしくお願いします!
あずきさん
回答ありがとうございました!><理解できました!
②についてはちょっと自分でサーバーの意味を勘違いをしていました、すいません!
なので②の質問は無しで;;すいません!
ご回答ありがとうございました><!助かりました!!
>>59
削除して新しくアップし直せばいいのでは?
>>59
デフォルトのパーミッションはサーバー・.htaccess等の設定・FTPによって違いますよ。
ちょっと検索すればわかることなので、まずは自分で調べる努力はしましょう。
というわけで600・604・644のうちサーバー設定に合ったものにしてください
初めまして。
1.42でbotを作成し、上手く動いていたのですが、
PHPのバージョンを5に上げた途端、reply_random.phpの方で
「Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /アドレス/reply_random.php on line 174」
のエラーが出るようになってしまいました。
どうすれば良いのか皆目見当がつきません。ご教授いただければ幸いです
>>63
次からは>>56 のテンプレ使ってくれ、鯖情報ないとわかんないから
というわけでこちらを参考に鯖確認してみれ
ttp://ameblo.jp/katyos/entry-10357760194.html
>>64
失礼しました。
【バージョン】1.42
【設置鯖名】 ロリポ
【PHPのバージョン】5
【実行】 CRON⇒cronjob.de利用
【手動】 動くがエラーが出る
【不明点など】 Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /アドレス/reply_random.php on line 174
PHPが4の時には完動していました。
参考URLは拝見したのですが、良くわからず、不勉強で申し訳ありません……
正規表現についての質問です。
「サッカーの単語に対しての反応」と
「サッカーに誘う言葉に対しての反応」を分けたいのですが
両方とも「サッカーの単語に対しての反応」を返してしまいます
上をただのサッカーという単語で登録して
下を(サッカー|さっかー)_*(しよう|したい|しない)?
の正規表現で登録しているのですが
間違っている箇所や、こうした方がいい、という箇所はありましたらアドバイスくださると助かります
>>66
上の方が優先順位が高いので、その順番だと
「サッカーしたい」より「サッカー」が優先される
順番を逆にすればよい
なるほど…!優先順位考えてなかったです
それなら、
「サッカーしたい?しよう?しない?」
「サッカーすき?きらい?」
「サッカー」
の順等にすれば大丈夫ということでしょうか
がんばってみます。ありがとうございます
ランダムポストについての質問です。
今までver1.4以前を使って60分毎のランダムポストを行っていたのですが
2.0だとbot.phpだけで動くのですよね?
すると60分毎に呟く為の記述をどこにどう書けば良いかわかりません。
cronを2分毎に設定しているとリプライの無い場合は通常ポストしてしまいますよね?
定期的にtw.txtからランダムにポストをしつつ、更に@を送られたとき別のパターンをランダムに返すことは出来ますか?
例としては一定間隔で名言をポストし、@を飛ばすとおみくじを引いてくれる、といった具合です。
>>69
まずは下記のスレを % (半角パーセント)で検索、ヒットしたレスを読んでください。
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/
続いて下記のURLを全て読んで見て下さい。
date()関数 ttp://www.scollabo.com/banban/php/ref/ref_date.html
比較演算子 ttp://www.phpmanual.jp/language.operators.comparison.html
if構文 ttp://www.scollabo.com/banban/php/php_09.html
最後にbot.phpの中央部から「/*」でコメントアウトしてある部分を見て下さい。
>>70
デフォルト設定のままでできます。
リプライパターンファイルを作って、適切に設定すれば大丈夫です。
VER.2.0は「reply_pattern.phpの編集」のページを、
Ver.1.4は「特定の単語を話しかけられたときに特定の単語を返す」のページを参照してください。
>>72
早速のお返事をありがとうございます。
特定キーワードなどは設定せず、@には全て同じパターン内から返信を出したいのですが(tarot3botのような感じです)
この場合はキーワード部分を空白にすれば良いのでしょうか?
>>73
その場合はreply_pattern.phpは使わず、ランダムリプライだけを使用すれば良いかと。
>>74
ランダムリプライファイル内で@用のパターンが指定出来るということでしょうか?
定期の通常ポストとは別に@用のパターンを作りたいのですが…
説明にあったランダムリプライは、ポストできるのはtw.txt内からのみのようなので困惑しています
>>75
Ver1.4でしたらreply_random.phpの中に
$file = "tw.txt"; //発言を書き込んだファイルの名前(変更可能)
とある通り、tx.txt以外のファイル名にすれば良いですよ。
Ver.2.0でも同様にファイル名を変えて下さい。
それと、できれば次回からは>>56 の点プレを使ってください、
バージョンで違う内容もでてきますので。
>>75
そんなに単純なことだったのですね!
ご迷惑をおかけしました。
テンプレートについても次回からきちんと使用したいと思います。
助かりました、本当にありがとうございます
はじめまして、どうしてもbot制作中に詰まってしまい質問させていただきました。
replyを時間ごとに設定してupしようと書き変えていたのですがエラーが出てしまいました
Parse error: syntax error, unexpected $end in /usr/local/www/htdocs/(アドレス)/public_html/twitterbot/bot.php on line 92
同じような質問があり、そちらの回答をみさせて頂き確認したのですが、エラーの上がった行には終わりの?>しかなく、その上の行も元からあった//のついたソースしかありません
試しに//つきのいらないソースも全て消してみたのですが、エラーの行数が上にあがるだけでエラー内容はなにも変わりません。
ちなみに現在別のCronに設定しているbot2.phpではエラーなく定期post出来ています。
【バージョン】2.03
【設置鯖名】@pages
【PHPのバージョン】5
【実行】風柳様のAEG-Cron
どうすればいいのかまっかく分からないので困っています。
何か解決方法がありましたらよろしくお願いします。
ぱっと思いつくのは
・インデントに全角スペースが入ってる
・ifなどで使った「(」や「{」が閉じてない
はじめまして。先日からBOTを作り始めているのですが、あと一歩(だと思われる)ところで行き詰ってしまいましたので、質問させていただきます。
【設置鯖名】 sitemix
【PHPのバージョン】2.0beta
【実行】 Free Web Cron Service
【手動】 動かない
【不明点など】
・sitemixのサーバーには一通り全てのファイルをアップし、tw.txt(これはdate.txtととっていいと考えております)とreply_pattern.phpとlog.datのパーミッションを666に設定しました。
・bot.phpファイルにアクセスしてみたところ、繋がっているとは思うのですが、何度やっても"投稿するメッセージがないようです。2分以内に受け取った@はないようです。"と表示されます。
・date.txtとdate.phpの両ファイルにちゃんと投稿させたい文章(云十は行っています)も書いてあり、php側にはちゃんと頭に"<?php
$data = array("をつけています(念のためにアップロードしたphpのパーミッションも666にしました)。
phpの配布元様のページにはしっかりと目を通したのですがどうにも解決策と思われるものがありませんでしたので、質問させていただきました。
何か解決方法がありましたら、どうぞよろしくお願いします。
>>44
reoさん
複数問いかけの書き方が間違ってた為にでてしまったエラーでした。
書き直したら無事つぶやいてくれるようになりました!
ご指導ありがとうございました!
>>80
> 投稿するメッセージがないようです。
data.txtとdate.txtをスペルミスしてる可能性は?
> 2分以内に受け取った@はないようです。
2分以内に該当BOT宛てに@送ってる?
>>82
早速の回答ありがとうございます。
>> 投稿するメッセージがないようです。
>data.txtとdate.txtをスペルミスしてる可能性は?
…パソコン内のフォルダとアップロード先フォルダを確認しましたが、どちらもちゃんと"data.txt"・"data.php"になってました。
>> 2分以内に受け取った@はないようです。
>2分以内に該当BOT宛てに@送ってる?
…はい、一番最初にエラーメッセージが出てからすぐに確認のために@を送りましたが、いつまでたってもリプライが返ってきません。
初心者の方へ
一度に全部の機能を実装しようとしてはいけません。
まずはpostRandomでdata.txtの内容をツイートさせてみてください。
<?php
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->postRandom("data.txt");
?>
と書いたbot.phpを手動で実行するだけです。
ツイートが成功したらReplyやRotationなど他の機能を加えたり、
CRON用の実行設定(if構文)を加えて下さい。
一度に複数の機能を実装してエラーが出ると、
どこでミスをしたのか、エラーがでているのかわかりにくくなってしまいます。
>83
bot.phpの動作設定をコピペプリーズ
>>85
>bot.phpの動作設定をコピペプリーズ
了解です。
下にそのままコピペさせていただきます。
<?php
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->autoFollow();
$response = $eb->postRandom("data.php");
$response = $eb->reply(2,"data.php","reply_pattern.php");
$response = $eb->replyTimeline(2,"reply_pattern.php");
?>
でアップロードしております。
>86
リプライだけがダメ?
それとも通常ツイートすらもできてないのかな
>>86
>リプライだけがダメ?
>それとも通常ツイートすらもできてないのかな
…どっちもまるっきり動作していません。
自動フォローのタグも入れたのに、一時間以上待ってもフォロー返しをしてくれなかったため手動でフォローし、botじゃないほうのアカウントで@を飛ばしましたが、一向に動く気配なしです。
>>88
まずは>>84 の通り、「ランダムツイートのみ」からやってみましょう
data.phpは文字コード:UTF-8N、改行コード:LFになっているか確認してください
もしどちらも合っているようでしたら、data.phpではなくdata.txtにしてみて下さい
data.t.txtの内容は↓のような簡単なもので結構です
返信文その1
返信文その2
アップしたらdata.php/data.txtがパーミッション666(サーバーによっては606)になっていることを確認し
bot.phpを手動実行してツイートされるか確かめてみて下さい
>>89
おっしゃる通り、>>84 のソースをそのままbot.phpに書き、アップロードしました。
data.phpの文字・改行コードもUTF-8NとLFになってます。
data.txtとdata.phpの内容も返信文〜にしてアップロードしました。
パーミッションを666と606で手動やりましたが、やはりまったく反応せずです。
>あずき様
ありがとうございました。さっそく確認してみたところ全角スペースが入ってしまってました。
ご指導ありがとうございます
初心者で恐れ入りますが、御教授宜しくお願いします。
指定されている場所以外は、特にPHPに手を加えておりません。
故にbot.phpの通常ポストは問題なく動きます。
ただ、リプライされた場合、リプライ文章のみ返して欲しいのですが…
なぜかリプライの文章と一緒にランダム文章も投稿されてしまい
一緒に2つ投稿されてしまう状態です。
【バージョン】2.03
【設置鯖名】 @pages
【PHPのバージョン】PHP-5.2.6
【実行】 手動
【手動】 動く
【不明点など】
bot.phpそのものは動くものの、リプライを貰った場合に上記の症状が出る。
特に改造もしていないので、どこが悪いのか分からず行き詰ってしまい
1日過ぎてしまいました。。。
ご助力頂ければありがたいです。。。
----------------------------------------------------------------------------------------------------------------Twitterへの投稿に成功しました。
@●●_botに投稿したメッセージ:あいうえおあいうえお http://twitter.com/ ●●_bot/status/9426729256
Twitterへの投稿に成功しました。
@●●_botに投稿したメッセージ:@◆◆_test かきくけこかきくけこ http://twitter.com/ ●●_bot/status/9426729796
----------------------------------------------------------------------------------------------------------------
リプライに対する返答と、
通常のランダムポストの2つの文章が投稿されてしまいます。
>>92
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/
上記スレの33・140あたりを確認して、ifの重複がないかを確認してみて下さい
その上でまだリプとツイートが重なるならbot.phpをコピペしてください
はじめまして。こちらのスクリプトは以前のバージョンから使用させていただいており、
この度バージョンアップということでEasyBotter2.03betaに移行したのですが、リプライで詰まってしまいました。
初心者なりに何度も説明や掲示板を見直したのですが、原因が分かりません。
ご教授いただけると幸いです。
【バージョン】2.03
【設置鯖名】 @pages
【PHPのバージョン】PHP-5.2.6
【実行】 GAE
【手動】 動く
【不明点など】 通常ポストは問題ないがリプライができない。
GAEで2分ごとに動かしています。ランダムポストは問題なくできているのですが、2分以内に@を飛ばしても返事が返ってきません。
手動でやってみても「2分以内に受け取った@はないようです。」と表示されてしまいます。
data.txtの内容以外は、とくに変更していません。
data.txtとreply_pattern.phpとlog.datのパーミッションは666に設定されています。
あと確認なのですが、cronで動かすのはbot.phpだけでいいんですよね?
よろしくお願いします。
>>94
> cronで動かすのはbot.phpだけ
そうです
setting.phpは全てちゃんと書かれてるかな、特に$screen_name
あとはreply_pattern.phpの「$reply_pattern = array(」を「$data = array(」に変更しているか
有名になったUCCの失敗事例と同じことをしたい(仕組み的には)と思ったのですが、予定はないでしょうか?
@でBOTに対してきたつぶやきだけでなく、特定のキーワードのつぶやきを拾いにいって、そのつぶやきに対して「フォロー&@でつぶやく(Mention)」ということがしたいです。
いかがでしょうか。
>>93
御回答ありがとうございます。
ファイルの構文は指定以外何も触っていないので、ifの重複は無いと思います。
恐れ入りますが、bot.phpをコピペする、という意味が分かりません。
どこへコピペすればよいのでしょうか?
新しくアップロードしなおす、ということでしょうか?
何度も申し訳ございませんが、宜しくお願い致します。
初めまして、こちらのEasybotterにて、
初めてphpというものをいじっております。
私のような者でもとても分かりやすく優しいサイトを作ってくださり
phaさんには本当に感謝しております!ありがとうございます!
【バージョン】Easybotter 2.03beta
【設置鯖名】ロリポップ
【PHPのバージョン】5.2.6
【実行】GAE-Cron
【手動】 動く
【不明点など】
1.約1時間前 Easybotterで という部分を
約1時間前 Fuck'ntoshで という表記に変えたいのですが
こちらは可能でしょうか?
とあるキャラクターのぼっとを作っているため、リアリティを持たせたいのですが…
もしcopyright的な意味で、こちらははずせないということでしたら諦めます。。
2.@返信に対してリプライしたりしなかったり、若干不安定です。
お忙しいところすみません、なにとぞよろしくお願いいたします。
はじめまして。PHPは全くの初心者で、今はbotジェネレーターで動かしているのですが、PHPに移行して自力でbotを動かしたいと思っています。
とりあえずはランダムポストだけさせたいのですが、手動で動かそうとするとこのようなエラーメッセージ↓
---
Warning: preg_replace() [function.preg-replace]: Compilation failed: nothing to repeat at offset 0 in /home/haseobot/public_html/haseobot/EasyBotter.php on line 404
Warning: explode() [function.explode]: Empty delimiter in /home/haseobot/public_html/haseobot/EasyBotter.php on line 405
Warning: array_rand() [function.array-rand]: First argument has to be an array in /home/haseobot/public_html/haseobot/EasyBotter.php on line 216
投稿するメッセージがないようです。
---
…が出てしまい、具体的にどこを直せばいいかわからずお手上げ状態です。
data.txtの内容以外で変更したところは、
・bot.phpの「$response = $eb->postRandom("data.txt");」文頭のスラッシュのみ外した
・setting.phpの Consumer key/Consumer secret/Access Token/Access Token Secret の全てを自分で取得したOAuth認証キーに変更した
の以上です。
よろしくお願いします。
>>95
迅速な対応ありがとうございます。
原因は$screen_nameでもreply_pattern.phpの書き換え忘れでもありませんでした。
>>94 でdata.txtの内容以外は、とくに変更していません。と書きましたが、
実はdatファイルのところをいじってしまっていたのです。
EasyBotter2.03betaをDLしたときに、log.datがなぜか
「GOM PLAYERメディアファイル(.dat)」(GOM PLAYERは動画再生のソフトです)になってしまい、
そのままupできなかったので、一旦 プログラムから開く→Mery で開いて名前を「log.dat」にして上書き保存しました。
上書き保存したとき、文字コードはUTF-8、改行コードはLFにしました。
それでも「GOM PLAYERメディアファイル(.dat)」なのは変わりませんでしたが、upはできるようになりました。
upできたので問題ないと思ってそのままにしていたのですが、@pagesでupしたdatファイルを確認してみたところ、
文字コードがEUC-JPになっていました。
ブラウザから文字コードをUTF-8に変更して保存し、もういちどdatファイルを確認すると文字コードが勝手にSJISになっていましたが、
リプライはできるようになりました。
なぜDLしたdatファイルが「GOM PLAYERメディアファイル」になってしまったのか、
なぜそのファイルが@pagesでうまくupできなかったのかわからないのですが、とにかく正常にbotが動くようにはなりました。
よくわからないままファイルをいじったのが悪かったと反省しております。失礼しました。
>>98
2.0を使っているなら2.0のスレのログも見て、同じ質問があるかちゃんと見ましょう
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/
175と176を見るべし
>>101
見落としておりました、本当に申し訳ございません。。。
本当にありがとうございました。。
初心者です。質問、失礼いたします。
【バージョン】Easybotter 2.03beta
【設置鯖名】@PAGE
【PHPのバージョン】5.2.6
【実行】GAE-Cron
【手動】 動く
【不明点など】
OAuth認証も終え、鯖にアップロードしていざbot.phpにアクセスして動きを確認したところ
以下のようなエラーが出ました。
----------------------------------------------------
Twitterへの投稿に失敗しました。
ユーザー名:@mao_bot_
object(SimpleXMLElement)#10 (2) {
["request"]=>
string(20) "/statuses/update.xml"
["error"]=>
string(19) "Incorrect signature"
}
2分以内に受け取った@はないようです。
----------------------------------------------------
(文字・改行コードはUTF-8NとLF、パーミッションも666にしております。)
他スレにも同じ質問をしている方がいらっしゃいましたが、
解決策が見当たらなかったのでこちらで質問させて頂きます。
お手数ですが、何方かご教授いただければと思います。よろしくお願いします。
>>103
Incorrect signatureなんだから、ID系統に間違いがあって接続できてないんじゃ…
settingファイルは間違ってない?
>>104
ありがとうございます!解決しました。
確かにsetting.phpが間違っていて、Consumer_keyとConsumer_secretが再取得前のものになっていました。
それと、アプリケーションの設定をBrowserからClientに直すのを忘れていました…
初歩中の初歩で躓いていたみたいです。
助言頂き本当にありがとうございました!
たぶんかなり初歩的なミスだろうと思うのですが、
何度見直してみても問題点がわからないので
申し訳ありませんがお知恵を貸していただけないでしょうか。
【バージョン】EasyBotter2.03beta
【設置鯖名】さくら
【PHPのバージョン】5.2.12
【実行】さくら
【手動】 動く
【不明点など】リプライを返さない
通常のランダムポスト用のデータをdata.txt。
リプライ用のランダムポスト用がname.txtとして分けてあります。
リプライに特定の単語があると特定の台詞を返す用にreply_pattern.php、とし
以下のように設定しアップロードしてありますがリプライを返しません。
手動ポスト、ランダムポストは問題なく動きます。
bot.php内の該当部分
//$response = $eb->autoFollow();
$response = $eb->postRandom("data.txt");
//$response = $eb->postRotation("data.txt");
$response = $eb->reply(2,"name.txt","reply_pattern.php");
//$response = $eb->replyTimeline(2,"reply_pattern.php");
reply_pattern.php内先頭部分
<?php
//特定の単語を受け取った場合に特定の反応を返したいときに使う、反応のパターンを書くためのファイルです。
//複数のパターンに一致する場合は上のものが優先されます。PHPの正規表現にも対応しています。
$name = array(
"よろしく|宜しく|ヨロシク"=> array(
パーミッションの666、ファイル形式もUTF-8N・LF(TeraPad使用)で確認済みです。
よろしくお願いします。
>>106
リプライパターンファイルの内容を下記のみにして「テスト」と話しかけてみて下さい
下記でリプ成功すればリプライパターンファイルの記述ミスです
$data = array(
"テスト"=> array(
"返信1",
"返信2",
),
);
>>106
あ、見落としがあった
$name = array(
じゃなくて
$data = array(
じゃないの?
>>107
レスありがとうございます。
指示いただいた通りにリプライパターンファイルをアップし直した所、
リプライに反応するようになりました。
ところが返したリプライが「返信1」「返信2」のどれでもなく、
リプライへの自動ポスト用として置いてあるname.txtからのものでした。
この場合はどの部分のミスが考えられますでしょうか?
>>108
申し訳ありません、書き方がわかりづらかったようです。
定期的に自動ポストするデータがdata.txt、
それとは別にリプライへ対し自動ポストするデータがname.txt、
という構成のためこのような記述になっています。
通常ポストとリプライはボットジェネレータでTLへの反応リプライのみEasyBotterで・・と考えているのですが、まったく反応してくれません。
全角空白や,や;はすべて問題ありませんでした。
//$response = $eb->autoFollow();
//$response = $eb->postRandom("data.txt");
//$response = $eb->postRotation("data.txt");
//$response = $eb->reply(5,"data.txt","reply_pattern.php");
$response = $eb->replyTimeline(5,"reply_timeline.php");
上記のようにTL反応のみという設定はできないのでしょうか?
あと、通常ポストの//をはずして動かすと発言はちゃんとするのですが、
Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/htdocs/(@pagesID名)/public_html/twitterbot/EasyBotter.php on line 275
という文字が表示されます。EasyBotter.phpの275行目を見ても
PHP知識が初心者レベルなのでよくわかりません。
TLのみに反応する方法がありましたら教えてください。
【バージョン】EasyBotter2.03beta
【設置鯖名】@pages
【PHP のバージョン】5.2.6
【実行】set cron jobs
【手動】 動く
【不明点など】TLに反応しない
>>109
いやね、EasyBotter2のリプライパターンファイルは
<?php
$name = array(
では始まらない
<?php
$data = array(
から始まる必要がある
>>110
> 上記のようにTL反応のみという設定はできないのでしょうか?
できます
一度reply_timeline.phpの文字コードを確認してみて下さい。
>>112
文字コードはUTF-8、改行コードはLFです。
>>111
たびたび申し訳ありません、どうも根本的な部分を勘違いしているようなので
少々確認させていただいてよろしいでしょうか。
旧ヴァージョン(1.42)では自動ポスト用のデータと、
リプライに対しての自動ポスト用のデータは分けることができましたが
それを実現するためには、下記のようにbot.php内でファイル名さえ指定されてあれば
//$response = $eb->autoFollow();
$response = $eb->postRandom("data.txt");
//$response = $eb->postRotation("data.txt");
$response = $eb->reply(2,"name.txt","reply_pattern.php");
//$response = $eb->replyTimeline(2,"reply_pattern.php");
リプライパターンファイルの冒頭も
<?php
$data = array(
の記述で問題ない、ということでしょうか?
>>114
TL反応だろうがリプライだろうが、「ワードに反応」させるファイルは
<?php
$data = array(
で始まります、それ以外にありえません。
根本的な部分を勘違いというより説明を読まないで思いこみされてるのではないでしょうか?
書きかえるべき部分はコメントアウトや公式ページ内で説明もされています。
「$data」はファイル名ではなく変数名です、基礎をもう少し勉強しましょう。
>>113
UTF-8N/LFで保存し直して見て下さい
>>115
説明やスレッド内は熟読したつもりだったのですが、
ここにはふさわしくない質問をしてしまい申し訳ありませんでした。
>>116
してみましたが・・だめでしたorz
ちょっと気になったんですが、
<?php
$data = array(
ではじまって
);
で終わってますが
最後に?>はいらないのでしょうか?
初めまして。数日前まで順調に動いていたのですが、
突然リプライの動作が止まってしまったので書き込ませていただきました。
リプライが無い状態で手動で実行すると
「5分以内に受け取った@はないようです。」
と正しい反応を示しますが、@を貰った状態で手動実行すると、
画面が真っ白になり、またレンタルサーバーのため広告がありますが、その広告の文字が文字化けを起こしてしまいます。
@が無い状態では広告も日本語で正しく表記されています。
ここしばらくbotそのものをいじったりしていなかったのですが、リプライを返さなくなっていることに気付いて調べたところ上記のような状態となっていました。
解決法などありましたらご教授願います。
【設置鯖名】land.to
【PHPのバージョン】1.42
【実行】 cronjob.de
【手動】 動くが@を貰うと反応が無くなる
【不明点など】 @を貰った時だけ反応が無くなる
失礼しました、PHPのバージョンのところにプログラムのバージョン数を書いてしまいました…
以下訂正です。
【設置鯖名】land.to
【PHPのバージョン】5.2.3
【実行】 cronjob.de
【手動】 動くが@を貰うと反応が無くなる
【不明点など】 @を貰った時だけ反応が無くなる
>>92
bot.php内で、reply()とpostRandom()を同時に実行するようになっているからですね。
以下のようにif文で実行条件を作ってみましょう。
if(date("i") % 15 === 0){
$response = $eb->postRandom("data.php");
}
$response = $eb->reply(2,"data.php","reply_pattern.php");
でもそうした時も、同時に実行されるのは仕様です。
分けたいなら別のbot.phpを作って、別に叩くしかありません。
>>100
動いたのなら良かったじゃないですか。
とりあえず。windowsの場合、拡張子で判別するので、別のアプリが割り当てられてますが、
そのlog.datは単に存在だけで、内容はありません。改行さえもです。
方法としては、エクスプローラ上でファイル名を変更→アップ→FTPソフト上で変名
で良かったかと。
あ、FFFTPってそういう拡張子でUPする/しないがあったような記憶が。
とってもおもしろいブログだよ♪
たまに更新もしてるから見に来てください☆ミ
ちょっとエッチなプライベートブログです(*^^*)
ttp://stay23meet.web.fc2.com/has/
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板