したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

Twitter Bot初心者質問スレ

1名無しさん:2010/02/16(火) 12:28:55
どんな初心者レベルの質問でも質問していいスレッドです。
内容もTwitter Botに関するものなら何でもありです。phaさんのスクリプト以外の質問もOKです。
でも返事が返ってくるかどうかはたまたま分かる人がいるかどうかなので、返事が返ってこなくても泣かない。
返答してくれた人にはお礼をね。

894名無しさん:2010/05/06(木) 23:00:42
>>893
575読んでるのにテンプレートを使わない意味がわからない
エスパーはここにはいないんだよ

895うら:2010/05/07(金) 12:37:59
>>882
ご自分で試されることをオススメします。

不安でしたら、ローカルで実行、または例えば echo を出力するだけの switch 文を実行
させてみればよいのです。

896sd:2010/05/07(金) 13:19:02
家電屋さん始めたよー^^
良かったら見てねー^^
商品情報ブログ
http://blogs.yahoo.co.jp/av2010net/44731.html
http://ameblo.jp/a-it/

897名無しさん:2010/05/07(金) 21:22:52
//「会話終了」を含む発言を受け取るとリプライを返さなくするサンプルです
"会話終了"=> array("[[END]]",),

これで「会話終了」ってやったら「[[END]]」って返されてしまったのですがこれはそういう意味だったのですか?
会話を終了して欲しいのですがどうしたらいいのでしょう?

898名無しさん:2010/05/07(金) 21:26:20
【バージョン】Easybotter 2.04beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】GAE-Cron
【手動】動く
【不明点など】reply_pattern.phpのファイルサイズが5kbを超えると何故か、data.txtを読み込んでリプライしてくれません。
画面が真っ白になり、どんなエラーが起こっているのかもわからない状態です。(広告などは表示されます)
しかしreply_pattern.php内にあるワードには反応します。なお、@の分数がリプライする時間を超えると
ちゃんと「●分以内に受け取った@はないようです」と表示されます。
EasyBotter.php等のファイルは全くいじっていません。
reply_pattern.phpが、5kbを超える以前はきちんと動いていたので、
何故、突然リプライがreply_pattern.phpにしか反応しなくなったのかわかりません。
通常ポストやTL反応等は普通に動きます。

bot.phpは
$response = $eb->reply(2,"data.txt","reply_pattern.php");
のままなので、どなたかわかる方いらっしゃいましたらご指南ください。よろしくお願いいたします。

899名無しさん:2010/05/07(金) 21:44:48
>>898
俺@PAGESだけどpattern.phpは30kで動いてるよ
つまり、どこかで記述ミスってるんじゃないの?

900名無しさん:2010/05/07(金) 23:41:49
PHP(5以上)のレンタルサーバーって、皆さんどこを使ってますか?
無料のところ教えてください。

901名無しさん:2010/05/07(金) 23:54:31
>>900
wiki見るか、無料 サーバー php5 などでググったらよいかと

902名無しさん:2010/05/08(土) 00:31:57
複数のbotを作りたい場合、アップするファイルが異なるのはdataやreplyだけでPEAR等のファイルは同じものをアップすればいいんですか?

903898:2010/05/08(土) 10:23:29
すみません、898で質問したものです。
記述等を確認してみたのですが、やはり動きませんでした。
パーミッションは@PAGESの説明にあった606にしてあります。
保存もUTF-8 BOMなし、改行コードLFで、保存してあります。
使用してるエディタはサクラエディタです。
怪しいとしたら正規表現を使っている部分なのですが、

AorA'のように同じ意味の単語の両方を反応させたいとき、
"(可愛い|かわいい)"=> array(
"セリフ1",
"2",
"3",
"4",
),
という表記の仕方は間違っているでしょうか…、他にも()の部分をなくしたり、[]にしてみても動くんですが、やはりdata.txtを読み込んでくれません。

これで作業環境やエディタのせいだったらお手上げなのですが…
作業環境はOSはWindows vista(32の方) プロセッサはAMD Athlon(tm)X2Dual-Core QL-60 1.90GHz メモリは4G のノートPC、ネット接続は光回線です。
よろしくお願いします。

904名無しさん:2010/05/08(土) 11:56:44
"可愛い|かわいい"=> array(
でいいんじゃないの?

905名無しさん:2010/05/08(土) 15:51:57
>>903
それを記述してるファイルの種類はphpファイルですかtxtファイルですか?

906名無しさん:2010/05/08(土) 18:41:48
h ttp://kkmt-mc.jugem.jp/?eid=4
このサイトを参考に作成しているのですが
アップロードのときのファイルの名前が違うようで・・・
どうアップロードすればいいか分からない状態です。

907ななし:2010/05/08(土) 19:33:15
はじめまして、早速で申し訳ないのですがエラーが出て困っています
【バージョン】1.42
【設置鯖名】 @PAGES
【PHPのバージョン】PHP-5.2.6
【実行】 GAE cron
【手動】 動く
【不明点など】
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /usr/local/www/htdocs/michirun/public_html/twibot/reply_pattern.php on line 41
上記のエラーが表示されます
ランダムポストは可能なのですが、リプライを返すことができません
すでに質問が出ているかもしれませんが、読み落としているかもしれません
原因がわかる方はいらっしゃいますか? もし同じ質問が過去に出ているのであれば注意してください

908898・903:2010/05/08(土) 20:37:35
898・903で質問した者です。
phpファイルです、reply_pattern.phpに記述してます。
reply_pattern.phpに載っている単語はリプライとして返してくれるんですが、載ってない場合通常だとdata.txtからリプライを返してくれるはずだと思うんですが(数日前までは確かに動いていたので)
reply_pattern.phpに載っていない単語には反応せず、手動で動かそうとしても、ページが真っ白になります。(reply_pattern.phpに載っている単語に手動で返す場合はリプライしてくれます)


あと、すみませんこういう掲示板使うの初めてなんですが、前の記事を「>>」で載せる方法ってどうやるんでしょうか、無知で申し訳ないです…。

909名無しさん:2010/05/08(土) 20:40:19
>>907
至急、鯖内のファイルを下ろすかディレクトリ変更を
鯖のアカウント隠し忘れてる

910名無しさん:2010/05/08(土) 20:57:14
>>907
ついでに言うと頻出質問な上、英文を和訳すればエラーの意味もわかるオチ

911名無しさん:2010/05/08(土) 21:03:03
>>907
非常に簡単なケアレスミスだよ>Parse error: syntax error
全文を検索にかけないで少しずつ検索にかけるとなにを言われているか分かる
syntax errorは大抵何かが多いか少ないかの場合が多い
しかも今回の場合は何行目アタリに何が多いか少ないかまで言ってくれてる

912名無しさん:2010/05/08(土) 21:06:17
【バージョン】Easybotter 2.04beta
【設置鯖名】@pages
【PHPのバージョン】5.2.6
【実行】GAE
【手動】動く
【不明点など】
現在、おはよう等の通常ポストにも反応するようにしていますが、
特定のユーザー(他のbot)が発言したタイムラインには反応しないようにするにはどうしたら良いのでしょうか?
検索しても、導入位置や、phaさんのスプリクトではどうすればいいのか等。良く理解できませんでした。
恥ずかしいほどの初心者ですが、よろしくお願いします。

913名無しさん:2010/05/08(土) 21:06:57
【バージョン】2.04
【設置鯖名】 @PAGES
【PHPのバージョン】PHP-5.2.6
【実行】 GAE cron
【手動】 動かない
【不明点など】 2分以内に受け取った@はないようです の下にdata.phpの$data = array〜内容文〜;と、
data.phpで打ち込んだ文章がびっしりと並んだ後にWarning: array_rand() [function.array-rand]: First argument has to be an array in /usr/local/www/htdocs/フォルダpublic_html/EasyBotter.php on line 220

投稿するメッセージがないようです。
と出てしまいます。

何度手動でアクセスしても変わりません。data.phpにしているのでbot.php等の文中のdata.txtもdata.phpに書き換えています。

一度テンプレで試したところ2分以内〜が出て手動で書き込みが出来るようですがリプライに反応しません。
全角空白は無いはずなんですが……

914名無しさん:2010/05/08(土) 21:21:53
>>6の者です。
無事アップロードできました。

915913:2010/05/08(土) 21:44:30
なんとか手動で動くようにはなりました。
ですがリプライには反応せず。

不具合があるとしたらどこでしょうか?

916名無しさん:2010/05/08(土) 21:52:59
すいません、>>6じゃなくて>>906でした。


アクセスするとTwitterへのpostに成功しました。と出るのですが、
しばらくしてからアクセスすると失敗しました、と出ます。
今アクセスしたときは成功したと出たのですが、エラーか何かですか?

917名無しさん:2010/05/08(土) 22:44:20
>>913
phpにするならreply_pattern.php内のように書かないとだめだよ
公式サイトにそう書いてたはずだが??
公式すらろくに読めないなら、余計なことはしないで指示通りやろう

918名無しさん:2010/05/08(土) 23:25:00
>>917
data.txtに直したら自動で呟きました。
最初からtxtでやってりゃよかった……><;

いろいろ試してますが、やっぱりリプライを返してくれません。
bot.phpを
<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(5,"data.txt","reply_pattern.php");
$response = $eb->postRandom("data.txt");
$response = $eb->autoFollow();
?>
としてます。
今気づいたら自動フォロー返しもしてない……だと……

919名無しさん:2010/05/08(土) 23:27:21
>>912
EasyBotter2.0
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/
これの127以降を参照

920名無しさん:2010/05/09(日) 00:42:18
>>919
すみません。説明不足でした。
そのbot(A)の「おはよう」「行ってきます」などのTLには反応させたくなくて、
Aからこっちに直接リプライが来たときにだけ、特定のリプライパターンで返事をさせることは出来ますでしょうか。

921名無しさん:2010/05/09(日) 01:34:59
【バージョン】2.04beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】GAE-Cron
【手動】投稿はできる
【不明点など】
何も変えない初期状態で試してみたんだけど、リプライ返してくれない。
ツイッターに投稿は出来てる。
何度リプライしても「20分以内に受け取った@がない」と言われる始末。
これってcronとかの実行間隔変えたらbot.phpとかeasybotterとかに書いてある2分間隔ってのも変えないとだめなの?

922名無しさん:2010/05/09(日) 02:09:17
>>920
>>919が最大のヒント
これ以上はあなたがPHP知識をつけるしかないです

>>921
bot.phpの間隔を変えなきゃだめですよ
cronが2分なら2

923名無しさん:2010/05/09(日) 03:34:29
cronをFree Web Cron Serviceでやっているのですが
設定方法が分かりません・・・
StatusはEnabledでいいんでしょうか。
URLってbot.phpのアドレスですか?
後時間はどのように設定すればいいのでしょうか・・・><

すいませんわかる方宜しくお願いいたします

924名無しさん:2010/05/09(日) 04:03:26
タイムライン反応用のファイルに[[END]]を入れたら機能せず
botが「[[END]]」と発言しているようです。これは仕様でしょうか?
他のTL用の語句には普通に反応しています。
通常リプライの[[END]]は機能しています。

925名無しさん:2010/05/09(日) 05:47:41
botがどのcronで動いてるか調べる事はできますか?
昨日は何もいじってないのに突然30分に2ツイートずつ、TL反応も2つずつするようになってしまって
使ってるcronを切ったら1つずつになったので
多分どこかで1つ作動してるんだと思うんです

926名無しさん:2010/05/09(日) 07:15:45
>>912
まずは>>575のwikiを確認してみようか

>>915
余計なことせずに>>575のwikiにあるやり方で、まずは全機能の動作確認
データファイルやbot.phpを弄るのはその後

927名無しさん:2010/05/09(日) 12:02:19
http://mocchilist.appspot.com/
ここのサイトでcronをしています。
つぶやきを30分に一回、リプライを2分ぐらいの間隔を空けたいのですが
どう設定したらいいのでしょうか?

928名無しさん:2010/05/09(日) 12:21:14
家電屋さん始めたよー^^
良かったら見てねー^^
商品情報ブログ
http://blogs.yahoo.co.jp/av2010net/44731.html
http://ameblo.jp/a-it/

929名無しさん:2010/05/09(日) 12:22:35
前まで成功しましたって出ていたんですが
何故かエラーがでてしまいました;
Fatal error: Class 'HTTP_OAuth_Exception' not found in /usr/local/www/htdocs/oriharamairu/public_html/EasyBotter2.04beta/PEAR/HTTP/OAuth/Consumer/Exception/InvalidResponse.php on line 39

こんな感じです・・・特になにもいじっていないのですが、どうしたらいいでしょうか??

930929:2010/05/09(日) 13:18:22
929の者です、
無事に解決したのでスルーしてください

931名無しさん:2010/05/09(日) 13:58:02
>>930
それよりフォルダ構成等丸見えなので、変えた方が…

932名無しさん:2010/05/09(日) 15:53:48
【バージョン】EasyBotter2.04beta
【設置鯖名】 ロリポ
【PHPのバージョン】5
【実行】 ロリポCRON(10分毎)
【手動】 動かない(真っ白な画面が出る)
【不明点など】 通常ポストはするが、リプライを返さない

昨日まで2週間ほどテストしていて特に問題なく動作していたのですが、今朝になってまったくリプライを返さなくなりました。
通常ポストは30分に1回、リプライは10分毎に返すようにしていたのですが、特に問題ないのでツイートを溜めない為に通常ポストだけ一旦止めて、
リプライだけするように変更したところ、リプライを返さなくなりました。
書き換える時に何かミスをしたのではと思いbot.php、reply_pattern.php共にDLしたての初期状態で、リプライだけするようにしてアップロードしたのですがダメでした。
cronの動作報告を見ると、メッセージがない時には

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;&lt;html xmlns="http://www.w3.org/1999/xhtml&quot; lang="ja" xml:lang="ja">
<head><meta http-equiv="content-language" content="ja" /><meta http-equiv="content-type" content="text/html; charset=UTF-8" /><title>EasyBotter</title></head><body><pre>10分以内に受け取った@はないようです。<br /><br /></body></html>

と出るのに対し、メッセージを送った時には

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;&lt;html xmlns="http://www.w3.org/1999/xhtml&quot; lang="ja" xml:lang="ja">
<head><meta http-equiv="content-language" content="ja" /><meta http-equiv="content-type" content="text/html; charset=UTF-8" /><title>EasyBotter</title></head><body><pre></body></html>

と出ていて、ツイッター画面で確認してもリプライは行われていません。
念のため、メッセージを送った後手動でbot.phpにアクセスしてみても画面に何も表示されません。

試しに通常ポストを再開したところそちらは問題なく動作していますので、reply_pattern.phpに何か問題があるのではと思っているのですが、初期状態のファイルをアップロードしてもまったく反応がないため困り果てています。
どうか御教授願います。

933932:2010/05/09(日) 16:54:48
追記です。
メッセージを受け取っていると、通常ポストも止まってしまうようです。
また、対応括弧の確認と、文字コード、全角スペースの有無は確認済みです。

934ななし:2010/05/09(日) 17:38:10
>>909
>>907を書き込んだ後変更してました

>>910 >>911
ありがとうございます
修正してきます

935名無しさん:2010/05/09(日) 20:38:03
GAE-Cronの設定を
定刻: */2分(0〜59) 7-23時(0〜23) *日(1〜31) *月(1〜12) *曜日(0:日曜〜6:土曜)  UTC時間+9.0
にしたら23時〜7時は喋らない子になりますかね?

936名無しさん:2010/05/09(日) 21:56:04
phpファイルをエディタで開くとおそらく日本語の部分であろう箇所が文字化けします。
過去ログを読んで文字コードを確認致しましたが、文字コード:UTF-8、改行コードはLFに設定済みです。
ファイルを開く時点で支障が出ており困っています。

どなたか詳しい方、ご教授願います。

937名無しさん:2010/05/09(日) 22:08:54
936ですエディタを変更したら文字化けはなくなりました。
お騒がせ致しました。
失礼します。

938924:2010/05/09(日) 22:42:06
すみません自己解決しました;;;
やはりタイムライン反応用ファイルには[[END]]を入れても機能しないようで、
EasyBotter.phpの該当箇所と思われるところをいじってみたら機能するように
なりました;;;

939名無しさん:2010/05/10(月) 01:44:50
サーバーにアップロードしたのはいいのですが、bot.phpに接続するとFatal errorが出てしまいます。
どうやら PEAR/HTTP/Request2/Exception.php の59行目がおかしなことになっているようです。
初心者のためwikiのエラー一覧で確認したところ、

未定義のクラスがある
クラス名が間違っている
クラスが見つからない
クラスファイルが読み込まれてない

のどれかのようなのですが、このファイルは弄ったことがなく、知識も乏しいため対処のしようがありません。

どなたか詳しい方ご教授願えませんでしょうか。

940939:2010/05/10(月) 02:12:50
追加です。
Exception.phpの59〜62行目
(〜58はほとんど//からなるコメントです)

class HTTP_Request2_Exception extends PEAR_Exception
{
}
?>

941名無しさん:2010/05/10(月) 02:53:12
>>939
そのファイルがおかしい、ということはまずありません
・サーバーの仕様で使えない
・bot用php(編集したもの)のいずれかに不備がある
・パーミッション設定不足
のどれか

942939:2010/05/10(月) 03:21:43
>>941

>・サーバーの仕様で使えない

これはないと思われます。
先ほど書き忘れていて大変申し訳ないのですが、サーバーは@PAGESを使っております。


>・パーミッション設定不足

パーミッションについてですが必要なファイル(指定されている三つ)は全て666に設定されているはずです。
何か他に設定しなくてはならないファイルがあるのでしょうか?


>・bot用php(編集したもの)のいずれかに不備がある

一番考えられるのがこれなのですが・・・それでもあまり考えにくいですね。
何度も目は通しているつもりですし・・・。
そもそもerror発生箇所は特定されているのでException.phpに問題があるのだと思うのですが・・・。
念のため、

(59行目)class HTTP_Request2_Exception extends PEAR_Exception



(59行目)class HTTP_Request2_Exception
(60行目)extends PEAR_Exception

という風に改行した結果今度はこのファイルの60行目に全く同じerrorが発生しました。

943939:2010/05/10(月) 03:32:52
>>941

ありがとうございました。
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/201
↑過去ログを漁ったところこちらに解決方法が記載されていたようす。
無事解決致しました。
お騒がせ致しました。

944jk:2010/05/10(月) 14:50:19
家電屋さん始めたよー^^
良かったら見てねー^^
商品情報ブログ
http://blogs.yahoo.co.jp/av2010net/44731.html

945名無しさん:2010/05/10(月) 19:10:09
【バージョン】Easybotter 2.04beta
【設置鯖名】@pages
【PHPのバージョン】5
【実行】GAE
【手動】動く
【不明点など】
dataのセリフの行が多すぎるので、data2と2つに分けました。
その場合、リプライパターンのファイルに
$response = $eb->reply(2,"data.txt","data2.txt","reply_pattern.php");
と表記するのは間違っているんでしょうか?

946名無しさん:2010/05/10(月) 19:46:55
【設置鯖名】 @pages
【PHPのバージョン】5
【実行】 cron
【手動】 動かない
【不明点など】

http://d.hatena.ne.jp/bardothodol/20100312
こちらのOAuth対応リプライにて、手動で試してみたところ「@」のみを吐き
更新する度に「@」しか出ず、リプライも一切返しません。

else{
$return = $reply_name." ".$com;}

 の部分が悪いのかと思い、

else{
$kara=array("");
$return =$kara;}

 に変えてみると、

/statuses/update.xml Client must provide a 'status' parameter with a value.
/statuses/update.xml Client must provide a 'status' parameter with a value.

という文章が出てきてしまいます。
宜しければどなたかご教授お願いいたします。

947名無しさん:2010/05/10(月) 19:56:18
>>946
どういう設定にして
どうリプライしたときとか
もっと詳しく書かないとわからないよ?

>>945
違います

948名無しさん:2010/05/10(月) 22:30:46
失礼します。
リプライと通常postの間隔をずらそうと
cronを二分置きに叩く設定にし、掲示板内の情報を参考にして
bot.php内を書き換えてみました。

if(date("i") % 15 === 0){
$response = $eb->postRandom("data.txt");
}
$response = $eb->replyTimeline(2,"reply_pattern.php");

結果、cronは全て叩けているようで正常だとは思うのですが
手動で動かしてみたところ通常postはされず
「2分以内のタイムラインに反応する単語がないようです。」という文字のみ表示されます
そこで質問なのですが、手動で叩いた場合も
上記のタグは適用されるのでしょうか?

バージョンは2.04beta
サーバーはsitemix
cronはFree Web Cron Serviceを使用しております

949名無しさん:2010/05/10(月) 22:55:35
>>948
if(date("i") % 15 === 0){
の意味は理解していますか?
サーバーの時間が毎時0分、15分、30分、45分でなければ動きませんよ

950948:2010/05/10(月) 22:58:04
続けて失礼します、
先ほどもう一度手動でページを見たところ「2分以内のタイムライン〜」というメッセージすら表示されなくなり
ページが真っ白になっていました;
掲示板で色々検索したところifを消したら治ったという記述を見かけたのですが
それだとリプライとpostの間隔をずらす事は出来なくなってしまいますよね?
かなり動揺しているのでわかりにくかったらすみません、どなたかご教授頂けないでしょうか;

951948:2010/05/10(月) 23:02:55
>>949
見逃していました、申し訳ありません;
サーバーの時間、というのはどういう事なのかちょっと分からないので
検索してきます、レス有難う御座います

952898:2010/05/10(月) 23:22:14
>>898 >>903 >>908
で、質問させていただいたものです。
エディタが問題なのかなと思い、サクラエディタからPHPエディタに
変えてみたのですが、変化はありませんでした。

構文のほうは構文チェックにかけて特に問題はありませんでした。
怪しいと思っていた、正規表現のほうも>>904様のおっしゃるもの
に変えてみたのですが、やはりreply_pattern.phpがある一定のファイルサイズになるとdata.txtからリプライを返してくれなくなります。
reply_pattern.phpからは返してくれるのですが…

ファイルの中身はいじっていないのですが、ポストとリプライ、TL反応を分けるためにbot.phpをコピーしてファイル名を変えて使っていますが、特にエラーは出ていませんでした。
自分でいじったのはそこだけなので、理由がわからないのですが、他のファイルにエラーが出てないか、調べたところ、

PEARフォルダ内のHTTPフォルダのRequest2.phpに

Warning: require_once(Net/URL2.php) [function.require-once]: failed to open stream: No such file or directory in /usr/local/www/htdocs/*****/public_html/bot/PEAR/HTTP/Request2.php on line 47

Fatal error: require_once() [function.require]: Failed opening required 'Net/URL2.php' (include_path='.:/usr/local/lib/php') in /usr/local/www/htdocs/*****/public_html/bot/PEAR/HTTP/Request2.php on line 47

とあったのですが、これはどうやったら治るのでしょうか?
初心者なので、漠然と47行目に何か足りないのかな?ぐらいにしかわかりません。
あと、他のページにも似たようなエラーがあったのですが、自分で触ると、逆に悪化しそうなので、怖くて触れません。
たびたび申し訳ありませんが、どうかご指南のほどよろしくお願いいたします。

…エラーの出てるページって全部書いたほうがいいですか?

【バージョン】Easybotter 2.04beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】GAE-Cron
【手動】動く
Cronも問題なく動いてます。

953名無しさん:2010/05/10(月) 23:46:55
リプライの事で質問です。

「○○(名前)のこと好きなの?」とリプライしても
○○の反応がかえってくるのですが、
どうやったら、「○○(名前)のこと好きなの?」の返事リプライが帰ってくるのでしょうか?
どう設定したらいいですか?
(○○)(好き)でやっても、駄目でした;

954名無しさん:2010/05/10(月) 23:55:06
>>953

既に○○を反応語句として設定しているということでしょうか?
そういうこととして答えさせて頂きますね。

"○○のこと好きなの?"=> array(
"返答",
),
"○○"=> array(
"返答",
),

というように、名前より先に記述することで優先順位があがり理想的な返答が返るようになると思われます。
ただ、上記のまま「○○のこと好きなの?」という風に設定すると融通が利かなくなるのでそれはご自身で編集なさって下さい。

955名無しさん:2010/05/11(火) 00:13:20
■■初心者さん、書き込み前にちょっと読んでね■■

>>953みたいに高度なリプライを考えてる子は「正規表現」を勉強しよう
既出の話題でもあるし、>>575でも必要だと言われてること
意味がわからなくてもまずはリファレンスに目を通して

それから通常ポストとリプライの間隔を違うものにしたい>>948みたいな子
こちらも同様に>>575で必要だと言われている
条件分岐・演算子・比較演算子・date関数あたりをしっかり勉強しなきゃ

956946:2010/05/11(火) 11:55:56
bardothodoさんのサンプルソースをOAuthなどの各自の設定以外は弄っていませんので
リプライは「じゃんけん」と「占い」だけです。
「じゃんけん」「占い」とリプライしても、対応外の言葉でリプライしても返事はなく
やはり「@」と吐くだけのようです。

957ワイン:2010/05/11(火) 19:21:17
【バージョン】Easybotter 2.04beta
【設置鯖名】ロリポップ
【PHPのバージョン】5
【実行】ロリポップcron
【手動】動く
【不明点など】
$response = $eb->postRandom("data.txt"); や、
$response = $eb->postRotation("data.txt");では自動投稿に成功したのですが、
$response = $eb->replyTimeline(10,"reply_pattern.php");がうまくいかず、
ブラウザでアクセスしても真っ白な状態です。

実現したいことは、フォローしている人の特定の発言がタイムラインに表示
された際に、reply_pattern.phpで設定した文章をリプライするという単純
な仕組みです。

reply_pattern.php のファイルだけにphpの?>が無かったので入れてみましたが
真っ白な状態が続いています。

パーミッションの設定は、data.txtとreply_pattern.phpとlog.datのパーミッション
を666にしています。

ロリポップcronの間隔は10分に設定しています。

958名無しさん:2010/05/11(火) 20:58:38
>>955
なるほど・・・正規表現ですか・・!
調べてみます、ありがとうございました!

959名無しさん:2010/05/11(火) 21:24:15
>>957
>> reply_pattern.php のファイルだけにphpの?>が無かったので入れてみましたが
おかしいのはこのせいだと思わなかった?
無くていいんだよ

960ワイン:2010/05/11(火) 21:52:39
>>959さん

無くても動かないんです。。。

961名無しさん:2010/05/12(水) 00:13:26
Ver.1.4、Ver.2.0のどちらのも、解凍(展開)したらファイル内が空っぽになるのですが、なぜでしょうか?

ちなみにvistaです。
パソ的に合わないんですかね…?

962名無しさん:2010/05/12(水) 02:29:55
>>961
解凍ソフト違うの使ってみようとは思わないの?

>>957
パーミッションは現状、log.datを変えるだけでいい
そしてロリポはdatパーミッションは666じゃない
ロリポの仕様きちんと見たの・・・?
wikiの手順どおりもう一度最初からやってみようか

963名無しさん:2010/05/12(水) 13:51:31
お世話になります。現在EasyBotter2.04を使わせていただいてます。
以前は1.42を使わせていただいてました。

form.php の機能を、2.04でも使うことはできないでしょうか?
BASIC認証廃止後もform.phpの機能を使いたいのですが・・

あるいは、同様の手動投稿用フォームで、OAuth認証対応のものがあったら教えてください。よろしくお願いします。

964名無しさん:2010/05/12(水) 15:15:53
>>963
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/213

965名無しさん:2010/05/13(木) 04:12:32
>>957がもしフォローあまりいない状態なら思い当たることが。
TL上に何も投稿がない時は真っ白ページ、
反応語句が含まれてなくても何かしら投稿があれば普通に
「○分以内の〜」とメッセージが出る、自分のとこのbotは。

966名無しさん:2010/05/13(木) 12:56:40
時間別でポストをさせたいのですが、質問です。

if(date("i") % 15 === 0){
$response = $eb->postRandom("minute.txt");
}

if(date("G") > 7 && date("G") < 9){
$response = $eb->postRandom("hour08.txt");
}

これだと1つ目が15分ごとにポスト、2つ目が8時にポストだと思いますが、
この二つを合わせる事は可能でしょうか?

例えば8:00になったらテキストをhour08.txtに切り替え、さらに8:15 8:30 8:45にも同じhour08.txtから発言させる、と言う感じです。
記述の仕方が分からなかったのですが、下記のやり方で正常に動作しますでしょうか?

if(date("G") > 7 && date("G") < 9)(date("i") % 15 === 0){
$response = $eb->postRandom("hour08.txt");
}

ちなみにバージョンは2.04betaを使っております。

967名無しさん:2010/05/13(木) 14:09:23
>>966
それは間違ってます

「分」が15分単位の時{
  「時間」が「8」の場合{hour08.txtからランダムポスト}
  上記に当てはまらない場合{minute.txtからランダムポスト}
}

このようにしなければなりません
ifの中にifを入れるのがわからないのなら

「時間」が8 かつ 「分」が15分単位の時{hour08.txtからランダムポスト}
「時間」が8以外かつ「分」が15分単位の時{minute.txtからランダムポスト}

このように並列して描いても良いが、上の方がスマートだとは思う

968名無しさん:2010/05/13(木) 15:24:43
>>967
とりあえずこんな感じにしてみました。

if(date("i") % 15){
if(date("G") > 7 && date("G") < 9){$response = $eb->postRandom("hour08.txt"}
{$response = $eb->postRandom("minute.txt");
}

1つ目のパターンを作っていたのですが、直してるうちによく分からなくなってきてしまい、
上記に当てはまらない場合の表現の仕方が思いつかず断念。
もう一つ、2つ目のパターンも作ってみました。

if(date("G") > 7 && date("G") < 9) && (date("i") % 15){$response = $eb->postRandom("hour08.txt");}
if(date("G") > 7 && date("G") < 9 ) ! && (date("i") % 15){$response = $eb->postRandom("minute.txt");}

こちらも何となくこんな感じなのかなあと思って作ってみましたが、正直自信はあんまりないです。

969were:2010/05/13(木) 15:39:53
家電屋さん始めたよー^^
良かったら見てねー^^
商品情報ブログ
http://ameblo.jp/a-it/

970名無しさん:2010/05/13(木) 22:35:40
>968
上の方は間違ってる
if(date("i") % 15){ ←ココおかしくなった
{$response = $eb->postRandom("minute.txt"); ←条件づけが無い上に閉じてないよね

971名無しさん:2010/05/13(木) 22:40:00
>968
下の方も間違ってる「時間」は8で固定した方がスマート
if(date("i") % 15){ ←これもおかしいね
あと「!」の使い方がおかしい

というわけで「比較演算子」と「演算子」ともっと勉強しよう、基礎の基礎だよ
http://www.scollabo.com/banban/php/php_06.html#enzan2

972さえ:2010/05/13(木) 22:54:15
他スレですでに投稿しましたが、初心者スレのほうが適切かと思いこちらで質問させていただきます。

TLに反応させようとしたのですが、初期のほうは反応していてくれたのですが、今では反応してくれません。
設定をいじりすぎたのか、と思い、また新しくDLし、必要最低限だけを入力、同じようにTLに反応する語句も指定し、自アカウントで発言した後にbot.phpを読みこんだのですが、やはり駄目でエラーが表示されます。
そのエラー文が下記なのですが、どこかでこのエラー文はリプライパターンとの照合が上手くいっていないとおっしゃってらしたのですが、果たしてどこが上手く照合出来ていないのか私にはさっぱりで…

Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/htdocs/あかうんとID/public_html/EasyBotter.php on line 279



Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/htdocs/あかうんとID/public_html/EasyBotter.php on line 279



Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/htdocs/あかうんとID/public_html/EasyBotter.php on line 279



Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/htdocs/あかうんとID/public_html/EasyBotter.php on line 279



Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 7 in /usr/local/www/htdocs/あかうんとID/public_html/EasyBotter.php on line 279

サーバーは@atpages、Cronは1分間隔に設定しています。

bot.phpの一部は
$response = $eb->reply(1, "ramhen.txt", "reply_pattern.php");
$response = $eb->replyTimeline(1,"reply_tl.php");
と設定しています。

ちなみにTLに反応したときに読み込ませるファイルがphpじゃ駄目なのかと思ってtxtでも試してみたのですが同じ結果でした…。
具体的にどこが照合できてないのでしょう…お願いします。

973名無しさん:2010/05/13(木) 23:22:24
>>972
無駄な改行は不要、>>575読んでまずは調べる
過去経験だとTL反応はフォロワー数やTL反応間隔によってエラーになる場合もある

974名無しさん:2010/05/13(木) 23:57:35
はじめまして。初めてのbot作りに挑戦中です。
EasyBotter2.04betaを@pageのサーバで使用しているのですが、実際に動かすところで躓いてしまっています。
通常のポストは問題なくしてくれるのですが、リプライをさせようとすると
object(SimpleXMLElement)#10 (2) {
["request"]=>
string(20) "/statuses/update.xml"
["error"]=>
string(22) "Status is a duplicate."
}
とのエラーが出て失敗してしまいます。
wikiを見たところ、
http://wiki.livedoor.jp/easybotter_wiki/d/ver.2.0*%A4褯%A4%A2%A4%EB%BC%C1%CC%E4*PHP%A5%A8%A5顼
こちらのエラーに該当していましたので、data.txtとreply_pattern.phpの文字コードを確認してみたのですが、両方ともUTF-8、改行もLFになっていました。
どのようにしたらリプライを返してもらえるのか……ご教授願います。

975名無しさん:2010/05/14(金) 00:12:39
>>974
Status is a duplicateでスレ内検索

976名無しさん:2010/05/14(金) 00:52:25
>>975
ありがとうございます。早速スレ内検索をしてみたところ、連続投稿規制と分かりました。
通常発言、リプライ反応それぞれ20種類以上あるのですが、もっと発言数を増やせばいいのでしょうか……
かさねがさねで申し訳ありません……

977名無しさん:2010/05/14(金) 00:55:14
>>976
テスト段階で公開してないのなら、テストしたツイートを消してみれば?
消しても同じエラーが出るなら別の原因

もっとも、板内検索重ねれば別の原因も見つかるんだけどね

978名無しさん:2010/05/14(金) 09:05:22
家電屋さん始めたよー^^
良かったら見てねー^^
商品情報ブログ
http://blog.livedoor.jp/av2010/

979名無しさん:2010/05/14(金) 10:46:00
>>977
アドバイスありがとうございます。テスト段階でしたので、全てのツイートを消してから再度返信をさせてみたのですが、今度は返信に対するエラーすら出なくなってしまいました。
設定している二分以内にbotにリプライを送り、手動で動かしても通常ツイートのみしかしてくれず、何の反応も無くなってしまいました。
一度アップロードし直した方がいいのでしょうか……

980名無しさん:2010/05/14(金) 11:04:56
DMにDMで返すのはムリ?

981名無しさん:2010/05/14(金) 11:15:52
>>980
可能、詳しくは公式APIを参照
しかしBOTでやるとスパム扱いされやすいから注意

982名無しさん:2010/05/14(金) 11:33:24
>>980
ありがとうございます。スパムにならないよう気をつけます!

983うら:2010/05/14(金) 13:00:16
>>956
うーん、先方様に聞いていただきたいというのはダメなんですかね。

察するところ、
Twitter 側からの Mentions がきちんと取得できていない、
受け取った何らかのモノが解析できていない、
データがない場合の処理がないからまともなツイートが作れない、
というところでしょうか。

ま、プログラムがんばってください。
件のスクリプト、シンプルだけどその分拡張性に富んでますよね。

984名無しさん:2010/05/14(金) 14:02:08
月曜日から初めてbotを作りはじめて、現在行き詰ってしまいました。
よろしければご教授願います。
cronの設定がうまくいきません。過去ログなど参照して
30分に一回通常ポスト、5分に一回リプライとして
下記のようにbot.phpを書いています。


<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
//=============================
//botの動作をここに書いてください
//先頭に//がある行はコメント扱いなので実行しません。実行したい行の頭の//を削除してください。
//=============================
$response = $eb->autoFollow();
if(date("i") % 30 === 0){
$response = $eb->postRotation("data.txt");
}
if(date("i") % 5 === 0){
$response = $eb->reply(5,"data.txt","reply_pattern.php");
}
?>

しかし、手動で試したところ、真っ白で何も反応がない状態です。
ちなみにcron設定でifを使わない場合

<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
//=============================
//botの動作をここに書いてください
//先頭に//がある行はコメント扱いなので実行しません。実行したい行の頭の//を削除してください。
//=============================
$response = $eb->autoFollow();
$response = $eb->postRandom("data.txt");
$response = $eb->reply(5,"data.txt","reply_pattern.php");
?>

は問題なく投稿されました。
原因は上記のcron設定でしょうか・・・?

また、現段階で設定がうまくいっていないことが原因なのか、
free web cron schedule serviceで5分おきに叩くように設定したのですが
こちらも叩かれていないようです。
(GAEはうまくいかず、こちらにしました)
ちなみにサーバは@pagesです。
あと一歩のところなのですが・・・
よろしくお願いいたします。

985名無しさん:2010/05/14(金) 17:48:31
【バージョン】Easybotter 2.04beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】GAE-Cron
【手動】動く

「GAEでcron動かすやり方をゆとり向けにまとめ〜」のページを参考に作成し、
cronの動作はSuccessと表示されているのですが定期ポストが成功しません。
CrontwitServlet.javaの書き変える箇所を
http://www**.atpages.jp/○○○/bot.php」(@pages内に設置したbot.phpのURLそのまま)
と変更したのですが、叩かせるページが間違っているのでしょうか?
ご教授お願い致します。

986うら:2010/05/14(金) 18:35:21
>>952
bot.php を複数個お使いのようですので、念のため確認します。
その data.txt の中身は単なる発言のみが書かれているのですね?
その data.txt を使っての通常ポストは問題なく行われているのですね?
今も reply_pattern.php を削って 5kb 以下にした場合は問題が起こらないのですね?

またエラーメッセージですが、実行ごとに表示されるのでしょうか?
PEAR ディレクトリの構成は、解凍されたものと同じ構成になっていますか?
ちなみにテキストファイルでも php ファイルでも、バイナリ転送にすると良いですよ。

987うら:2010/05/14(金) 19:02:56
>>984
>>575をチェックして、まず postRotation が動くところから確かめましょうよ。
ちなみに指定するファイルが書き換え可能じゃないとエラーになりますよ。
また、5分ごとに cron するつもりなら、 reply() の条件づけは不要かと。

ところで bot.php で実行の条件づけは cron にはあたりませんよ。

>>985
そちらのスクリプト、実行の結果、つまり出力された HTML は得られないんでしょうか。
なお、 cron は cron スレで。

988985:2010/05/14(金) 19:24:47
>>987
レスありがとうございました
webcron.orgを使ってみたところ上手く動作しましたので、そちらに乗り換えようと思います。
スレ違い失礼致しました

989名無しさん:2010/05/15(土) 03:26:38
ファイルの数が多くなってきたのでいくつかのランダムポストやリプライデータを
フォルダに分けて整理したいのですが
ディレクトリの下の階層からそのデータを呼び出す時はどういう記述にしたらいいんでしょうか?

990名無しさん:2010/05/15(土) 03:28:29
>>989
/

991名無しさん:2010/05/15(土) 03:29:39
ごめん、途中送信した

>>989
基本的には フォルダ名/ファイル名.拡張子 で大丈夫

992名無しさん:2010/05/15(土) 03:36:01
>>991
お早い回答ありがとうございます
凄く簡単な事だったんですね、助かりました

993名無しさん:2010/05/15(土) 04:48:51
wikiの
『ランダムPOSTで複数のファイルからランダムに発言させたい』
と言う項目に

$randfile = array("one.txt","two.txt");//ランダムPOST-ファイル名
$response = $eb->postRandom($randfile[array_rand($randfile)]);//ランダムPOST
とすることでone.txtかtwo.txtをランダムに選び、更にtxt内の一行をランダムにPOSTします。
人格を分けて発言させたい場合、one.txtに1人格目・two.txtに2人格目のセリフを入れましょう。

と、ありますが、これは他の設定と組み合わせる事は出来ますか?
例えば月曜日の16時〜20まで外出イベントで、イベント内容は01〜05からランダムに選ばれ、
選ばれたら以降20時まで同じデータから順にポストする。同時にリプライデータも選ばれたデータに対応するものに自動選択。
みたいな感じです。




掲示板管理者へ連絡 無料レンタル掲示板