[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
この機能を使うにはJavaScriptを有効にしてください
|
レス数が900を超えています。1000を超えると投稿できなくなるよ。
TwitterBotPHP質問スレ
1
:
pha
:2009/12/01(火) 17:51:42
http://pha22.net/text/twitterbot.html
でphaが公開しているPHPのTwitterスクリプトについて、
スレッド立てるほどじゃない質問はこちらにどうぞー。
phaがときどき巡回しますが対応が遅れることも多いので、質問に答えてくれる人も募集しています!
671
:
名無しさん
:2011/03/22(火) 22:28:18
【バージョン】 Ver.2.05
【設置鯖名】 @pages
【手動】 @リプ、TL反応リプは正常
【不明点】
18分、36分、54分の時に通常ポストをさせたくて
if(date("i") % 18 == 0){
$response = $eb->postRandom("data.txt");
}
と書いたのですが、54分と0分にポストします。どこを直せば良いのでしょうか?ご教授お願いします。
672
:
名無しさん
:2011/03/22(火) 23:45:20
>>671
@pagesはサーバータイムが大幅にずれていることが散見される
初心者スレ3の279を参考に、まずはサーバータイムが正確かどうかを確かめて下さい
サーバータイムが正しいようであればあとは書き方の問題になってくる
手動/CRONとサーバータイムがずれていたり、鯖重過ぎなどでジャストタイムで動かない時は
%を使わず前後1分、または前後どちらか1分を含めた時間で動かすと良い
||で全部の時間を書き出すか、%を「== 0」以外にするかはお好みで
673
:
名無しさん
:2011/03/23(水) 10:28:08
>>672
ありがとうございます。
修正したのですが、今度は
Parse error: syntax error, unexpected $end in /〜bot.php on line 82
とエラーが出てきました。82行目は[EOF]があるだけで一切いじってないのですが…どこが悪いのでしょうか
674
:
名無しさん
:2011/03/23(水) 14:16:40
>>673
とりあえず非公式wikiの通りに全機能を一つずつ確認
PHP改造やデータ改変しない状態でまずはやってみて
そして次回からは初心者スレを利用してください
675
:
名無しさん
:2011/03/23(水) 14:47:49
>>673
回答ありがとうございました。色々いじっていたら解決したみたいです。
スレ違い失礼致しました。
676
:
名無しさん
:2011/03/30(水) 00:49:21
OAuthの設定でTwitter Applications | dev.twitter.comから登録しました
問題なく使えていたのですがURLが変更になり変えようとしたところ
Editのところで変更されていても呟きに反映されません
原因がわかる方いたら教えてください
677
:
名無しさん
:2011/04/08(金) 17:00:00
ツイートやリプライなどで{name}を使う時に、
名前の中に全角、半角の「@」が含まれていたらそれ以降を読まない…という事は出来ますか?
作っているのがゲームキャラのBotのせいか、名前@R18ワード…みたいな名前登録の人が複数いて
それをBotに発言させるのが嫌なんですが名前を全く呼ばないのもつまらないかと…。
震災後、「名前@居住地区」という表記にしている方も多く見受けられるので
そういった変更が可能であれば教えて頂きたいです
678
:
名無しさん
:2011/04/08(金) 22:24:00
整理age
679
:
名無しさん
:2011/04/09(土) 19:49:37
TL反応を分けているbotがいくつか存在しますが、あれはどうやってやるんでしょうか?
(「○○○」と@を飛ばせばTL反応をしますし、「×××」と@を飛ばせばTL反応をしなくなります。みたいな機能のことです)
680
:
名無しさん
:2011/04/09(土) 23:39:16
>>677
できる
自分は例えばbot同士で呼び合うとき、キャラ名(fanbot)だと
(fanbot)というところが邪魔なので、(fanbot)というところを
丸ごと抜くように設定している
681
:
677
:2011/04/10(日) 23:56:58
>>680
ありがとうございます、挑戦してみます。
682
:
名無しさん
:2011/04/19(火) 15:25:59
>>676
同じ状況になったことあるが新しく作るしかなかった。
683
:
名無しさん
:2011/04/21(木) 13:45:03
>>677
>>680
私もその変更をしたいのですがどうやればいいのでしょうか
ereg_replaceで@から文末までを削除…ですか?
684
:
名無しさん
:2011/05/08(日) 12:45:30
pha氏のサイトにあった
//また、ファイル名をdata.phpに変えれば、phpの配列形式で書くことも可能です。その場合は$dataという変数を使って、以下のように書いてください。
この説明どうりにdata.txtからdata.phpに替え$data変数を使い書きました。しかし以下のようなエラーメッセージが出て動きません
$data = array(
〜以下省略〜
);
Warning: array_rand() [function.array-rand]: First argument has to be an array in /…/EasyBotter.php on line 220
投稿するメッセージがないようです。
なぜでしょう?
685
:
名無しさん
:2011/05/08(日) 20:15:17
>>684
<?php
$data = array(
"メッセージ内容",
);
<?phpがないなら投稿するメッセージがないといわれるのは当然
686
:
名無しさん
:2011/05/08(日) 22:24:43
>>685
初歩てきなミスでした
指摘ありがとうございました
687
:
名無しさん
:2011/05/11(水) 16:56:20
検索するにもどのような単語で検索すればよいか分からず、質問させていただきます。
たとえばbotに複数のキャラクターが共存していて、「@botid Aさんおはよう」というように、
キャラクターの名前を入れてリプライを送ると、そのキャラクターからリプライが返ってくるようにしたいのです。
今は正規表現で記述して分けていますが、非常に長くなり、管理しづらくなってきました…。
なので、まずキャラクター名を検出して、そのキャラクター名によって別のプログラムに飛ばし、
そこから該当するリプライを探す…。というようにする方法を教えていただけないでしょうか?
(できればファイルは分けず、reply_pattern.phpの中で収められると助かります)
なかなかうまく説明する言葉がみつからず拙いですが、ヒントだけでもご回答していただけると助かります。
よろしくお願いいたします。
688
:
名無しさん
:2011/05/11(水) 19:52:12
>>687
現行スレくらい読みましょう
689
:
名無しさん
:2011/05/11(水) 20:44:20
>>688
ありがとうございます。
少しずつですがなんとなく見えてきました。
あたって砕けてどうしても分からなくなったらまたお力添えをお願いにくると思いますが、よろしくお願いいたします。
690
:
名無しさん
:2011/05/15(日) 14:39:42
EasyBotter Ver2.04betaを使っています。
例えばA_botのTLにB_bot宛のリプライがあったとして、
それを拾って、B_bot宛にリプライした人にリプするっていう事はできるのでしょうか?
tl_pattern.phpに
"@B_bot おはよう"=> array(
"こっちにもおはようっていって!",
),
って書いたらエラーになっちゃいまして・・・。
691
:
名無しさん
:2011/05/15(日) 20:37:45
\@
692
:
名無しさん
:2011/05/16(月) 19:18:07
質問失礼します。
リプライでおみくじのような機能を付けようかと思ってます。
"占い"=> array(
"今日の運勢は○○、ラッキーアイテムは■■、ラッキーカラーは××です。",
),
この○○、■■、××にランダムに文章を入れたいのですが、調べようにも検索ワードがわからなくて困っています。
ユーザー定義関数かもと思いましたが、文章内への組み込み方がわからず…
よろしければ教えてくだされば幸いです。
693
:
名無しさん
:2011/05/16(月) 21:32:05
>>692
横着せずその分作る。
ないとは言い切れないから言っておくと、それだと同じ人にはリプ送れない仕様になる。
694
:
名無しさん
:2011/05/16(月) 21:51:46
>>693
組み合わせが2300通りを越したので楽をしようと思ってしまいました。不快にさせてしまったなら申し訳ございません。
>同じ人にはリプ送れない仕様になる
とは、どういうことでしょうか?
何度もすみません
695
:
名無しさん
:2011/05/16(月) 22:59:00
>>692
-------reply_pattern.php
"占い"=> array(
"今日の運勢は{fortune}、ラッキーアイテムは{fortune_item}、ラッキーカラーは{fortune_color}です。",
),
・・・・・
・・・・・
・・・・・
$fortune = array("大吉","吉","小吉");
$fortune_item = array("帽子","傘","靴");
$fortune_color = array("赤","青","緑");
-------EasyBotter.php
function convertText($text, $reply = FALSE){
if(strpos($text, "{fortune}") !== FALSE){
$text = str_replace("{fortune}",$fortune[array_rand($fortune)],$text);
$text = str_replace("{fortune_color}",$fortune_color[array_rand($fortune_color)],$text);
$text = str_replace("{fortune_item}",$fortune_item[array_rand($fortune_item)],$text);
}
・・・・・
・・・・・
・・・・・
696
:
名無しさん
:2011/05/16(月) 23:42:09
>>695
早速弄ってこようと思います。
ありがとうございました!
697
:
690
:2011/05/17(火) 19:40:48
A_botのTLにB_bot宛のリプライがあったとして、
それを拾って、
B_bot宛にリプライした人にリプする
っていう事はできないんでしょうか?
698
:
名無しさん
:2011/05/17(火) 20:16:51
\@
699
:
690
:2011/05/17(火) 21:00:10
>698
意味がわかりません。
700
:
名無しさん
:2011/05/17(火) 21:46:47
>698
ああ、それだわww
>697
A_botのreply_pattern.phpに
"^\@B_bot\s"=> array(
"@B_botに話しかけるときは、必ず私を通していただきたい。",
),
って話しかな?
701
:
690
:2011/05/17(火) 22:40:34
>700
いいえ、ちょっと違います・・・。
A_botのTL上にある「B_bot宛のリプライ」を拾いたいんです。
tl_pattern.phpに書き込んでリプライする方法といいますか。
702
:
名無しさん
:2011/05/17(火) 23:28:14
>>701
A_botのtl_pattern.phpに上記を書けばいいのでは?
言ってる意味が分からない。
バカですまぬ。理解力がおよばない。
703
:
690
:2011/05/18(水) 00:02:42
700さんが書いてもらったものでは、
TLで拾ってくれなかったんです。
改造などはしてないのですが…。
704
:
名無しさん
:2011/05/18(水) 00:32:29
>>703
あ、makeReplyTimelineTweets関数の中で横槍リプライを抑制してました。
そこ書き換えて特定の@だけ通すようにすれば拾うかと。
705
:
690
:2011/05/18(水) 00:44:21
>704
ありがとうございます!
あのあたりの、あれかなぁ…というのは分かるので、試してみます。
706
:
690
:2011/05/19(木) 00:12:37
何度も申し訳ありません。
makeReplyTimelineTweets関数の
if(preg_match("@".$pattern."@u",$text, $matches) === 1 && !preg_match("/\@/i",$text)){
あたりなのかと思って、書き換えてはみたものの、うまくいきません。
助言お願いいたします。
707
:
名無しさん
:2011/05/19(木) 07:23:55
>>706
どんなふうに書き換えました?ソースお願いします
708
:
690
:2011/05/20(金) 00:23:56
すみません、初心者すぎてとりあえず入れ込んだのは↓のとおりです。
("/\@/i",$text))ではじいたのかな?と思ったので。
if(preg_match("@".$pattern."@u",$text, $matches) === 1 && preg_match("/\@B_bot/i",$text)){ && !preg_match("/\@/i",$text)){
709
:
名無しさん
:2011/05/20(金) 07:55:30
>>708
if(preg_match("@".$pattern."@u",$text, $matches) === 1
&& (preg_match("/@B_bot/i",$text) || !preg_match("/@/i",$text))){
710
:
名無しさん
:2011/05/20(金) 07:59:06
>>709
です。訂正 RT、QTには反応させない
if(preg_match("@".$pattern."@u",$text, $matches) === 1
&& !preg_match("/RT|QT/i",$text)
&& (preg_match("/@B_bot/i",$text) || !preg_match("/@/i",$text))){
711
:
690
:2011/05/22(日) 00:27:11
>>710
うまくいきました、ありがとうございます!!
712
:
名無しさん
:2011/05/24(火) 13:42:08
$response = $eb->reply(1,"","reply_pattern.php");
を使って、ボットあての文章を
そのまんまの文章で返事をさせるところまではできました。
今度は
ボットあての文章をUTF-8にエンコしたものにして返させたいのですが
reply_pattern.php
の書き換えで実現可能でしょうか?
目標としては、
自サイトの検索結果ページのURLを返すようにしたいと思っていて、
tinyurlのapi-create.php
などを使ってURLを短縮させるところまで行きたいのですが・・・
713
:
名無しさん
:2011/05/27(金) 16:07:37
age
714
:
名無しさん
:2011/05/30(月) 16:40:16
すこし質問させて下さい。
あまり上手く説明出来ないんですが、bot.phpに最初から入っている
$response = $eb->reply(2,"data.txt","reply_pattern.php");
を使って手動でリプライのテストをやっているんですが
@が来てない時は「2分以内に受け取った@はないようです。」と出るのに、
いざ話しかけた後に動かすとページが真っ白になってしまいます。
どうすればいいのでしょうか・・・?
715
:
名無しさん
:2011/05/30(月) 17:37:41
>>714
初心者スレを「白」で検索
716
:
名無しさん
:2011/05/31(火) 03:01:06
調整age
717
:
名無しさん
:2011/06/13(月) 23:25:02
自動フォローの設定をしていたら変なところをいじってしまいブラウザからPHPを見ると
Fatal error: Call to undefined method EasyBotter::getFollowers() in /home/users/1/サーバー/EasyBotter.php on line 387
こんなエラーが出ます。
そこの部分は
$response = $this->getFollowers();
こんな感じなんですがどこか直せってことなんでしょうか?
718
:
名無しさん
:2011/06/14(火) 07:21:19
>>717
どこか直せってことですね
http://10key.net/php_error.html
#fatal
間違えてdel押したりとかもあるので、
修正前のソースとコンペアすることをオススメする。コンペアってナニ?とか聞かないでね。
あと、エラーメッセージの内容くらい調べようよ。調べればわかるから。そのためのメッセージだから。最初から考える気ないのかな?
719
:
名無しさん
:2011/06/17(金) 13:45:19
少し質問させて下さい。
非公式wikiにある「特定のアカウントとのリプライ回数を制限」なのですが、
kaiwalog.txtのリセットを、「毎日リセット」から「毎時・もしくは数時間に1回リセット」に変える事は可能でしょうか?
//■■リプライした人の記録リセット■■
if(date("i")=="00"){$fp = fopen("kaiwalog.txt", "w");fclose($fp);}
をwikiを参考にしてbot.php内に組み込んでみたのですが上手く機能せず…
修正箇所などあれば、ご指摘頂けると嬉しいです。
リプライ制限は正常に動いており、FTPからkaiwalog.txtを見るとlogもしっかり残っているのですがリセットされません。
720
:
名無しさん
:2011/06/17(金) 16:18:17
>>719
ちゃんとサーバータイムで00分に実行されてます?
721
:
名無しさん
:2011/06/17(金) 19:12:13
reply_pattern.phpにきちんとテキストエディタを使い、
文字コードはUTF-8、改行コードはLFに設定していますがブラウザで見ると文字化けしています。
内容自体は基本の設定に書いてある
$data = array(
//「おはよ」を含む発言(「おはよ」「おはよう」「おはよー」など)を受け取ると「おはようございます、御主人様」もしくは「Good Morning, Master.」と返すサンプルです
"おはよ"=> array(
"おはようございます、御主人様",
"Good morning, master.",
),
//「今日の運勢」を含む発言を受け取ると6種類の中からランダムな返答を返すサンプルです
"今日の運勢"=> array(
"大吉",
"中吉",
"小吉",
"末吉",
"吉",
"凶",
),
);
をコピペしている状態です(まだ承認はしていません。)
過去ログを拝見すると、もう一回DLし直すのが解決策でしょうか?
phpが不安定な気がしました。data.txtを最初data.phpとしてやってたんですが文字化けしてしまい、txtの方だと正常になりました。
何か見落としているのでしょうか。
722
:
719
:2011/06/17(金) 22:20:10
>>720
ありがとうございます。
cronは通常とは別に毎時00分に実行されるようにセットしてあるのですが、リセットされないようです。
723
:
名無しさん
:2011/06/17(金) 22:28:51
>>721
です
再びDLしたら正しく動きました。
724
:
名無しさん
:2011/06/17(金) 23:30:16
>>722
書き方を変えた方が良いかな
そもそもCRONと設置サーバの時間は一致してるかってことを聞いてる
わからなければ非公式wiki見てくれ
http://www26.atwiki.jp/easybotter_wiki/pages/25.html
#id_ce8e3a32
725
:
719
:2011/06/18(土) 00:05:40
>>724
ご指摘の通り、CRONと設置サーバの時間がズレてたようで、余裕を持った書き方に変えたらログがリセットされるようになりました!
ありがとうございました!
726
:
名無しさん
:2011/06/18(土) 03:13:29
簡単じゃないBOTの発言確率についてなのですが
easybotter.phpの
//リプライパターンと照合の
if(preg_match("@".$pattern."@u",$reply->text, $matches) === 1){
と
$status = $res[array_rand($res)];
の間に
if(preg_match("@".$pattern."@u",$reply->text, $matches) === 1){
$res = $this->probabilityExtension($res);//発言確率拡張
$status = $res[array_rand($res)];
・・・・・・・
と、入力してもうまく発言確率機能が使えません
発言確率拡張の関数を置いてる場所が悪いのでしょうか
どこに設置したらいいかご教授お願いします
727
:
名無しさん
:2011/06/18(土) 06:17:51
>>726
自力ででバグできない人は、あそこのサイトには手を出さない方がいい。
728
:
名無しさん
:2011/06/19(日) 03:24:25
>>726
あそこは本人様も書いてるように文法チェックだけでテストしてないから思わぬバグがあったり、動かなかったりする。
あと見てると前提となるEBの構成記述がDL直後と違ったりするので、そのままやるとこの記述無いんだけど?みたいなことも
729
:
名無しさん
:2011/06/19(日) 12:00:48
>>726
どうしても確率調節したいなら無理やり
"今日の運勢"=> array(
"大吉",
"中吉",
"小吉",
"小吉",
"小吉",
"末吉",
"吉",
"凶",
),
とか
長ったらしくなる上に多いと見栄え悪いけど
730
:
687
:2011/06/19(日) 15:33:37
以前質問させていただいた
>>687
です。
ありがたく活用させていただいております。
ログやphpサイトを参考に試してみたのですが、どうにも上手くいきません。
内容は以下です。
<?php
$chara_a = array(
"反応単語1" =>
"返信イ",
"返信ロ",
"反応単語2" =>
"返信ハ",
"返信ニ",
//該当なし
"" =>
"返信ホ",
);
$chara_b = array(
"反応単語1" =>
"返信ヘ",
"返信ト",
"反応単語2" =>
"返信チ",
"返信リ",
//該当なし
"" =>
"返信ヌ",
);
$data = array(
"キャラA" => $chara_a,
"キャラB" => $chara_b,
);
これだとキャラクターの分別は出来るのですが、例えば「キャラA」宛てのリプライをもらった時
「返信イ〜ホ」の中からランダムで選んでしまうようです。
"反応単語1" => array(
"返信イ",
"返信ロ",
)
も試しましたが上手くいかず…(「Array」とツイートします)。
お手数おかけいたしますが、改善箇所等ご指南いただけると助かります。
お願いいたします。
731
:
名無しさん
:2011/06/19(日) 16:18:47
>>730
開いたら閉じる!
732
:
726
:2011/06/20(月) 01:17:01
>>728-729
有難う御座います
発言確率はなんとか自力で組み立てて出来るようになりました
曜日指定や時間指定が一番やりたかったんですがこっちがなかなかうまくいかず…(出来たら管理が楽になるのでやりたいんです)
テストしてないと聞いて少し納得しました
ですが管理が楽になるので諦めずにいじってみる事にします
何か分かった事があったら助言を頂けたら嬉しいです
733
:
名無しさん
:2011/06/20(月) 01:43:41
>>732
曜日及び時間指定はEasyBotter2.0スレの900や901、wikiを見たらある程度分かるんじゃないかな
734
:
名無しさん
:2011/06/20(月) 07:21:49
>>732
なぜ助言を請うばかりで、分かったことを人に分け与えない。
735
:
687
:2011/06/20(月) 20:03:12
>>731
ありがとうございます
心当たりのあった、<?phpを閉じてみましたが、反応は変わりませんでした。
下の説明の
"反応単語1" => array(
"返信イ",
"返信ロ",
)
は書き込み時に一部消えてしまったりと、書き方が足りなかったようで、実際には
$chara_a = array(
"反応単語1" => array(
"返信イ",
"返信ロ",
),
〜略〜
);
$chara_b = array(
〜略:同上〜
);
$data = array(
"キャラA" => $chara_a,
"キャラB" => $chara_b,
);
です。すみません。これで「Array」とリプライされてしまうんです。
返信と反応単語の部分(例えば返信ロと反応単語2)が繋がってることに気づき、
そこを中心にいろんな書き方を試してみましたがなかなか動いてくれません。
度々申し訳ありませんが、知恵をお貸しいただけないでしょうか。
よろしくお願いします。
736
:
名無しさん
:2011/06/20(月) 23:42:36
こんな機能があったらいいなスレにも書いてしまいましたが、場違いと思いこちらに書きました。すみません。
標準機能で、「占い」機能あるじゃないですか?
同一ユーザは1日1回しか占えないと言うように改造したいのですが、できますかね?
例えば、1日に既に1度リプライで結果を送信されたあと、再度「今日の占い」とbot宛に
ツイートすると、「占いは1日1回までですよ」みたいなのが、送信されるみたいな。
737
:
名無しさん
:2011/06/20(月) 23:51:23
>>735
単純ミスであるけど、改行コードは大丈夫?
738
:
名無しさん
:2011/06/20(月) 23:53:31
>>736
改造すればできる
要はデータファイル作って占いしたか判定してリプライ振り分け
1日1回データファイルをクリア
739
:
726
:2011/06/21(火) 03:10:34
>>734
何でそんな攻撃的なんだよw
教えて欲しいなら言えばいいだろうに
これがツンデレ
740
:
名無しさん
:2011/06/21(火) 07:05:30
>>739
私が知りたいから言っているとか、そんな狭量な話ではありません。
もっときちんと情報を与えば、資料としての価値は高まると言っています。
お互いのためになると言っています。
残念ですが、私に関していえば、技術面でここから教わることは何もありませんでした。従って、私の利益だけを考えれば、答える必要もないのです。
それでも答えるのは、bot全体の質を上げたいから。botが暴走したりせず、迷惑なpostで人を煩わせることなく、サーバーに負担をかけず、かつ安定した動作で、spam扱いで凍結されることなく、多くの個性的な機能で、一人でも多くのフォロワーさんに楽しんで貰いたいからに他なりません。
それをご理解頂けないのは誠に残念でなりません。
しばらくは傍観させていただくことにします。
コードを書きたくなるような面白い質問があったらまたお答えするかもしれません。では…
741
:
名無しさん
:2011/06/21(火) 21:18:07
答える側の任意ではあるがここは基本「教えて」と言えば「教えてあげる」というスタンスは取っていない。
自らPHPなどを勉強して覚える気がないならいつまでも「初心者」です。
後継に同じようなミスを出す人もいるだろうから自分がどのようにそれを回避したのか情報を提供することで同じようなミスをする人に答えれる。
最近の初心者さんは情報乞食ばかりで情報提供が出来ないなら、この板がある意味は正直ない。
あと初心者さん、最近BOTがよくBANされているのはご存知かな?
http://ameblo.jp/qsoft/entry-10623665000.html
BOTのBAN回避の為の注意点
http://twbot.blogspot.com/2011/06/1.html
742
:
687
:2011/07/02(土) 21:28:16
>>737
ありがとうございます。
735の書き方で、反応単語の最後に「\n<br />」を付け加えて試してみましたが、
反応はありませんでした。
easybotterも新しいバージョンに移行して、まだほとんどいじってない状態なので、
どこか間違って書き換えたというのも考えにくくて…
一旦諦めて、また時間が取れるときに再挑戦しようと思います。
皆様ありがとうございました。
743
:
名無しさん
:2011/07/03(日) 22:41:21
http://red5jedimaster.wiki.fc2.com/
Twitterアカウントリストまとめ(岩手限定)
744
:
名無しさん
:2011/07/05(火) 11:19:37
初心者用のスレにも書いたのですが、
改造はこちらの範疇とのことで再書き込みさせていただきます。
現在占い用のBOTを作ってるのですが、
あるアカウントからのリプライに対し、
初回はデータファイルの中からランダムに、
2回目以降は初回と同じ内容を返し、
そして1日ごとにリセットするというのはどの様に改造すれば良いでしょうか?
検索ワードが悪いらしく思うように調べられませんでした。
どうぞお力添えください。
745
:
名無しさん
:2011/07/05(火) 15:56:35
>>744
ここって無償奉仕のプログラマーがいるわけじゃないからw
せめて、どういうファイルを用意してどう使う、くらいまでは自分で考えて
それを提示した上で書き込みをどうぞ
それもわからないレベルの「初心者さん」は改造に手を出すな、が答え
746
:
名無しさん
:2011/07/06(水) 20:48:29
調整上げ
747
:
名無しさん
:2011/07/08(金) 01:08:17
単語拾いを導入したいのですが、
こちらを参考に、ttp://www26.atwiki.jp/easybotter_wiki/pages/26.html
Easybotter.phpのほうは書き換えることができました。
あとは、{ran_meishi}を入れて、リプライさせたい文章を、書いてサーバにUPする段階なのですが、
どこに書けばいいのでしょうか。
こちらのサイト ttp://blog.livedoor.jp/bot_1go/archives/1733069.html
さんでは、『tw.txtに 「君は{ran_meishi}が好きなんだね」 と記述 』する。
とかいてあるので、
『data.txt』に書けばいいのでしょうか?
748
:
名無しさん
:2011/07/08(金) 01:32:38
>>747
まず自分で試してみたら?
聞くより早いでしょ
749
:
名無しさん
:2011/07/08(金) 01:44:46
毎回のようにtw.txt聞いてくる人いるね
http://www26.atwiki.jp/easybotter_wiki/pages/14.html
#id_095278c1
に書いてあるから知らないではダメだよ
750
:
名無しさん
:2011/07/08(金) 03:29:05
この手の質問はこっちでいいのかな…
TL反応ワードに関しての質問なのですが
複数のワード両方があった場合にのみTL反応させることは可能ですか?
例えば「学校」と「行ってきます」とか…。
普通に設定すると「学校行ってきます」では反応しても「学校へ行ってきます」だと反応しないので
その辺を上手く調整したいのですが…。
あと、特定の単語だけでTL反応させる方法はありますか?
例えば「帰宅」とだけ呟いたら反応して、「帰宅中」だと反応しないとか…
ググっても全然分からない(というか何でググればいいのかすら分からない)ので
どなたかアドバイスお願いします。
751
:
名無しさん
:2011/07/08(金) 05:14:04
>>750
正規表現
752
:
名無しさん
:2011/07/08(金) 19:59:02
>>750
"学校.*(行ってきま|いってきま)"=> array(
"返信内容",
),
"帰宅中"=> array(
"[[END]]",
),
"帰宅"=> array(
"返信内容",
),
で解決。たまに「行ってきまーす」って言う人がいるから「行ってきま」で登録して大丈夫だと思う
753
:
750
:2011/07/09(土) 10:33:55
>>752
なるほど、前者は「.*」でいいのですね。
ありがとうございます。
「行ってきま」だと「きました」に反応する可能性があるのでそれは諦めるかな…
後者は、「帰宅」とさえ入ってれば反応してしまうと思うので
「帰宅」とだけ書いたら反応し、他に1文字でも何か入ったら反応しないようにしたいのですが…
754
:
名無しさん
:2011/07/09(土) 11:16:26
>>753
正規表現でできるっていわれてるんだから少しは自分で調べたらどうですか
ちなみにその二つとも簡単な正規表現で対応できる
後者のヒントは文頭と文末を指定すること
755
:
750
:2011/07/09(土) 17:57:37
>>754
「PHP 正規表現」「EasyBotter 正規表現」でなら以前自分でも調べましたが
全然分かりませんでした。何しろ数が多すぎて…
今それに「文頭と文末を指定」を追加して調べましたが余計分からないです…
756
:
名無しさん
:2011/07/09(土) 21:39:44
メタ文字はぐぐりましたか?
わからないわからないばかりじゃなくて理解する努力をしよう
それでも無理なら
>>752
でいいだろ
757
:
名無しさん
:2011/07/10(日) 21:55:44
>>755
こちらへどうぞ
http://www.rider-n.sakura.ne.jp/regexp/regexp.php
758
:
名無しさん
:2011/07/12(火) 14:36:22
現在、easybotterの導入を検討しておりまして、質問させていただきます。
phpをいじることによって会話に分岐を持たせるようなことは可能なのでしょうか?
例えば、botからの「俺のこと好き?」「メロンは好き?」っといった問いかけに対して
フォロワーが「好き」と返答した場合に、直前の質問内容によって異なる返答をするよう
設定することはできるのかということが気になっております。
もし可能であれば、検索のキーワードなど教えていただけましたら大変ありがたいです。
よろしくお願いします。
759
:
名無しさん
:2011/07/12(火) 19:21:47
>>758
できるけどかなり改造しなきゃならないよ
760
:
名無しさん
:2011/07/12(火) 22:32:16
>>759
ご回答ありがとうございます。
とりあえず実現することは可能ということで、導入に踏み切りました。
改造などはまだまだですが少しずつ理想に近づけていきたいと思います。
761
:
名無しさん
:2011/07/13(水) 03:17:00
>>760
改造にこのあたりを使う、参考にするといいよ。
ただし、このサイトはほとんどの場合PHPの文法チェックだけで動作チェックしてないから要注意
http://twbot.blogspot.com/2010/10/blog-post_24.html
762
:
名無しさん
:2011/07/20(水) 22:06:58
自動フォローの際にリプライを入れる機能を利用しています。
鍵付きに対して、フォローリクエストをしたら1度だけリプライをするように制御できないかと思い、此方のサイトを参考に改造しました。
http://www7a.biglobe.ne.jp/~ws_story/twitter_bot/info/HM_BOT_func.html
未検証とのことなので、ログを取りながら2時間程様子をみていたのですが
リプライパターン照合に対してのエラーが出るだけで、自動フォロー返しも、それと連動するはずのフォロー報告リプライも機能しなくなりました。
ちなみに、リプライパターン照合エラーはこの改造を施す以前からありました。
フォローリクエスト送信済みの相手のIDを記録しているファイルは、更新されており、新しくフォローしたユーザーのIDが記載されていました。
エラーを吐きださないので、原因がよくわかりません。
どの過程で不具合が生じているのか、何が足りないのか調べる方法があれば教えていただけないでしょうか。
※リプライパターン照合エラー行は、リプライを作る過程にある
if(preg_match("@".$pattern."@u",$reply->text, $matches) === 1){
という行です。
※ログ取り改造参照:「簡単じゃない twitter bot」 の作り方メモ
http://twbot.blogspot.com/2010/08/easybotter2.html
763
:
名無しさん
:2011/07/20(水) 22:13:47
>>762
追記
フォロー報告リプライの記述も非公式Wikiから更に改造しています。
foreach($followList as $rscreen_name){
$f_res = rand(1,3);
if($f_res == 1){
$value = array("status"=>"@{$rscreen_name} フォロー完了したよ!");
}elseif($f_res == 2){
$value = array("status"=>"@{$rscreen_name} フォローさんきゅ!");
}elseif($f_res == 3){
$value = array("status"=>"@{$rscreen_name} フォローありがと。よろしくね");
}
$response = $this->setUpdate($value);
$result = $this->showResult($response);
$results[] = $result;
}
764
:
名無しさん
:2011/07/27(水) 22:51:48
通常ツイートに{timeline_name}を利用しているのですが、
特定のID(他bot)を除外するにはどう書き換えればいいのでしょうか…?
765
:
名無しさん
:2011/07/29(金) 00:15:42
>>764
{timeline_name}を取得してるとこに判定入れるだけ
766
:
764
:2011/07/29(金) 12:14:10
>>765
レス有り難う御座います
if( strpos($text , "{timeline_name}") !== FALSE || preg_match("@bot@i",$text))
{
$randomTweet = $this->getRandomTweet();
$text = str_replace("{timeline_name}" , $randomTweet->user->name , $text);
}
で合っていますでしょうか?エラーは吐かないのですが…
767
:
名無しさん
:2011/08/01(月) 18:55:35
easy botterを@pagesで5分間隔で実行するにはどうしたらいいですか。よくある、4ツイート連続の呟きを、5分間隔で投稿するように設定したいのですが。どうすればいいか教えてください。GAE cronで、5分間隔で。
768
:
名無しさん
:2011/08/01(月) 21:08:23
>>767
仕様書をよく見よう
これは初心者以前の質問です
769
:
名無しさん
:2011/08/01(月) 23:00:39
GAE cronを使ったのですが、レンタルサーバーがcronを受け付けなく、5時間ほど5分間隔で投稿を続けると、php error がでます。投稿できなくなります。
770
:
名無しさん
:2011/08/01(月) 23:01:59
>>768
GAE cronを使ったのですが、レンタルサーバーがcronを受け付けなく、5時間ほど5分間隔で投稿を続けると、php error がでます。投稿できなくなります。
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板