したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が900を超えています。1000を超えると投稿できなくなるよ。

EasyBotter初心者質問スレ4

1名無しさん:2011/10/19(水) 23:48:10
まず、公式ページや非公式wikiをチェックして下さい。
また、>>2-3のFAQ・過去スレ・関連スレをチェックして下さい。
それでも分からない場合は、【質問テンプレ】を使って質問して下さい。
もちろん回答が得られない場合もあります。(回答をもらえた時にはお礼もね。)

■手動でも(ブラウザで表示させても)動かない …… >>2-3のチェックを
■CRON関連でトラブル …… CRONスレへどうぞ。
 Twitterbotのcronスレ
 http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1260351215/
■EasyBotter.phpを修正したが動かない …… 改造は初心者の範疇外です。該当スレへ。
 EasyBotter2.0
 http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/

▼公式ページ:http://pha22.net/twitterbot/
▼非公式wiki:http://www26.atwiki.jp/easybotter_wiki

▼過去スレ
 1:http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1266290935/
 2:http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1273843076/
 3:http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1287944674/

▼質問テンプレ
【バージョン】 Ver.1.4x/Ver.2.0x
【設置鯖名】 レン鯖名/自宅鯖
【PHPのバージョン】
【手動】 動く/動かない
【実行】 CRON鯖名/ブラウザ自動更新/手動/他
【実行間隔】 ●分間隔(CRON等で定期的に実行している場合)
【不明点】 (エラーメッセージがあればコピペ推奨)

▼回答いただける方へ
 回答はあくまで任意、答えられる範囲で結構です。(誘導も兼ねてage進行)
 回答できない、したくない場合は下手に煽らずスルー推奨。

2名無しさん:2011/10/19(水) 23:48:51
■初心者の方へ■
いきなり色んな事をしようと思うと躓いてしまします。
アレ?と思ったらまずは基本に立ち返って確認してみよう!
・公式ページ、非公式wikiを読み、手順通りにしていますか?
・文字コード、改行コード、パーミッションの設定はOKですか?
・ランダムポストのみ記載してブラウザで表示させたら、動作しますか?
・表示されたエラー(英文)をそのままググって、解決できませんか?

■悩んだら検索■
上記を熟読してもわからなければ、思いつく単語をこの掲示板の全てのスレッドで検索してください。
初歩的なミスについてはほぼ解決方法が出そろっています。

▼検索例
 リプライ関連: リプ、@、reply、返信などで検索
 タイムライン関連: TL、タイムラインなどで検索
 CRON関連: CRON、bot.phpなどで検索
 機能の条件づけ・組み合わせ: if、switch、条件、bot.phpなどで検索
 二重投稿: 二重投稿、if、bot.phpなどで検索
 リプライと同時に他のポストをする: bot.php、if、同時などで検索
 via〜変更: API、via、OAuthなどで検索+http://twitter.com/oauth_clients

■初歩プログラムの勉強を■
スクリプト初体験の方は、PHPリファレンスで最低限の勉強をしましょう。
下記5項目がわかれば基本機能を使いこなすことができるようになります。
(これらはPHPに限らず多くのプログラミングにほぼ共通するものです)

bot.phpで必要な知識
 ├演算子
 ├比較演算子
 ├条件分岐(if、switch)
 └date関数

reply_pattern.phpで必要な知識
 └正規表現(メタ文字)

3名無しさん:2011/10/19(水) 23:49:41
■■2.0設置での多い質問■■
・ランダムPOSTを○分おき、リプライを○分おきにしたい
・時間別にリプライorPOSTを分けたい
・特定の人だけにリプライを分けたい/スルーさせたい
など
まずは自力で調べる
   http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/90
   http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/220
   http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/228-229
それから2.0、初心者、質問スレ(場合によってはあったらいいなスレ)をくまなく見たら
似たような質問があるはず

・アップしたら真っ白になるだけ/文字化けしてる
   エンコードUTF-8(TeraPadはUTF-8N)BOMなし、改行コードはLFになってるか
   data.txtとreply_pattern.phpとlog.datのパーミッションが666になってるか(サーバーによって違う場合もあり)
   setting.phpで何か間違ってないか

・二重投稿して直らない
   twitterが重いのでしばらく待つ
   とりあえずcronの間隔を長めにとってみる
   if構文がダブってないか見る
   一旦サーバーに上げたものを削除して上げなおし、cronの設定もやりなおす
   サーバーを変えてみる

・よくわからない英語のエラー文が出てくるんです
   それをそのまま自動翻訳なりぐぐるなりして調べてみよう
   簡単なエラーならエディターでチェックできます

・フッターが説明どおりにしてるのにうまくいかない

・会話終了にすると[[END]]と出て機能してない
   会話終了を機能させる
   http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/280

・昨日まで正常に動いていたのにリプライ等動かなくなった
   twitter側が重くなった時など、例外エラーが返される場合があります。
   こちらではどうしようもないので復旧を待ちましょう

■■OAuthがらみで多い質問■■
・via EasyBotter のEasyBotterという部分が変えられると聞きますがどうやって変えるのですか?
   setting.phpの編集ページのOAuth認証についてに貼られているサイト先をよく読む
   この掲示板の参考レス http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/176

・自分のアカウントでOAuth認証登録してしまってbotアカウントで再度取得しようと思ったら直らない
・access_token access_token_secretが出てきません。
・なんか途中でエラー出て進みません
   各OAuth認証方法紹介してくださってるサイト様が追記して分かりやすく書いてくれてます
   この掲示板の参考レス http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1259689986/88
   PHPのバージョンが5以上であるか確かめてください。また借りてるサーバーのQ&Aもよく読んでください

・Descriptionの所にDescription is too short (maximum 30 characters)がでてしまい登録ができません。
   とりあえずDescriptionのところを30文字以上埋める

4名無しさん:2011/10/19(水) 23:53:04
EasyBotte.php内の旧APIから現行APIに更新

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

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

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

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

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

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

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

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

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

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

ttp://twitter.com/friendships/create/id.xml

ttp://api.twitter.com/1/friendships/create/id.xml

5名無しさん:2011/10/19(水) 23:57:12
【書き込み前の注意】

初心者さん
 →EasyBotter初心者質問スレ3
改造してる人・NOT初心者
 →EasyBotter2.0
雑多な質問
 →スレ立てるほどじゃないその他の質問スレ
CRON・定期実行
 →Twitterbotのcronスレ
自作・他botプログラム等
 →TwitterBotPHP質問スレ

------------------------------------------
逆引き

EasyBotter初心者質問スレ3
→初心者さんかつ改造未導入であること

EasyBotter2.0
→慣れきたので改造をしてみたい、改造を自己責任で行える方

botにこんな機能があったらいいなスレ
→考案及び提示

phaがときどき見るかもしれないスレ
→EB製作者様への感想・意見・バグ報告

------------------------------------------

本家よくある質問
http://pha22.net/twitterbot/2.0/faq.php

6名無しさん:2011/10/20(木) 00:26:01
コピペで書き換え見逃した場所が・・・orz

7名無しさん:2011/10/22(土) 16:26:21
2.05をDLして運用しているんですが、
今までローテーションだったものをランダムポストをしようとしたら
Fatal error: Call to undefined method EasyBotter::rento_check() in /****/****/****/EasyBotter2.05/EasyBotter.php on line 92
とでました
で、92行目を見たら
//ランダムにポスト
function postRandom($datafile = "data.txt"){
$status = $this->makeTweet($datafile);    ←92行目
if(empty($status)){
$message = "投稿するメッセージがないようです。<br />";
echo $message;
return array("error"=> $message);
}else{
//idなどの変換
if(preg_match("@{.+?}@",$status) == 1){
$status = $this->convertText($status);
}
$response = $this->setUpdate(array("status"=>$status));
return $this->showResult($response);


php自体は弄ってなく、最初からこの状態だったのですが、これは何がエラー原因なのでしょうか?

87:2011/10/23(日) 17:39:02
誰かいませんか・・・?

9seira:2011/10/23(日) 18:52:21
一見、普通の女の子の日記ですが、
ある事をした後に更新しています。かなり中毒性が高いので注意が必要かもしれないです。

ttp://prof9pop.web.fc2.com/hrk/

10名無し:2011/10/24(月) 23:24:36
【バージョン】 Ver.1.4x/Ver.2.0x
【設置鯖名】 @page
【PHPのバージョン】PHP-5.2.6
【実行】 GAE-cron
【実行間隔】 30分間隔
【不明点】
どうしても調べて分からなかったのでご伝授頂けたらと思います。

今現在とあるbotを稼働させていまして、特定のIDのTLには反応させないようにさせたいのですがPHPコードが調べても分からず頭を悩ませています。
今現在bot事態は普通に稼働しているので問題はないのですが、とあるbotと連携しているため、そのとあるbotからのリプには反応させてもTLには反応させたくないと考えているのですが上手い方法ないでしょうか。

プログラミングはbotを作りたいがために独学でいくらか調べてはいるのですが、まったくの初心者でどうも分からなかったので教えて頂けるとありがたいです。

11名無しさん:2011/10/25(火) 03:37:21
>>10
改造はスレ違い、書き込むなら2.0スレへ
ついでに言うと過去の書き込み漁ればソースある
…てわけで書き込む前に>>1-3くらい読もうね

12名無し:2011/10/25(火) 07:26:52
11>ご伝授ありがとうございます。もう一度2.0の方に書き込み直します。
どっちにするか悩んだのですが、初心者なのでこちらに書き込んでしまいました。
またソースもずっと探して過去スレも見ていたのですがしっくりくるソースが見つからなかったので書き込ませていただきました。
お手数おかけしてしまいすみません。

13名無しさん:2011/10/28(金) 02:03:47
調整あげ

14名無しさん:2011/10/29(土) 23:28:10
bot.phpの中身を

<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();

$response = $eb->reply(2,"date.txr","reply_pattern.php");
//$response = $eb->postRandom("data.txt");
?>
DL時よりもむしろ減ってるのにTLはできてリプライはできないとかおかしいやろ

プログラミングができなくても作れるTwitter botの作り方読みつつ「試しにbotを動かしてみる」までは読んだが

15名無しさん:2011/10/30(日) 00:02:05
>>14
wikiも見ると幸せになれる

16名無しさん:2011/10/30(日) 00:04:48
date.txr

(´・ω・)・・・・?

17名無しさん:2011/10/30(日) 12:42:05
どこかのwikiコピペした際に間違ってただけでアップロードしたデータはtxrになってなかったわ

解凍直後の
//$response = $eb->postRotation("data.txt");
//$response = $eb->reply(2,"data.txt","reply_pattern.php");の//削ってTLは毎時5分に話すようにできているが リプライ送ったときだけbop.phpが真っ白になる
そして送っていないときは『2分以内に受け取ったリプライはない』とご丁寧に答えてくれる

18名無しさん:2011/10/30(日) 14:40:06
>>17
>>1-3よく嫁

19名無しさん:2011/10/30(日) 18:35:32
【バージョン】 Ver.1.4x/Ver.2.0x
【設置鯖名】 @PAGES
【PHPのバージョン】
【手動】 動かない
【実行】 手動
【不明点】 ランダム発言を実行しようとすると以下の様に表示されます。

Twitterへの投稿に失敗しました。
ユーザー名:@〜〜〜

object(SimpleXMLElement)#5 (2) {
["error"]=>
string(22) "Status is a duplicate."
["request"]=>
string(22) "/1/statuses/update.xml"
}

全てのファイルは「UTF-8 LF」の形式なっており、bot.phpは


<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(2,"data.txt","reply_pattern.php");
$response = $eb->postRandom("data.txt");
?>

です。bot.phpからランダム発言の記述を消して、リフォローの記述を入れたところリフォローは正常に機能。
リプライ返しもリプライがあったかなかったかの判別はできるものの、やはり投稿ができずにとまります。
似たような症状の方は過去にも多いようですが、同じ症状の方は見つけられませんでした。
パーミッションはPHPが666でその他を606に設定しています。ご教授よろしくお願いします。

20名無しさん:2011/10/30(日) 18:38:55
↑すみませんバージョンは2.05です。

21名無しさん:2011/10/30(日) 19:38:15
>>19
http://www26.atwiki.jp/easybotter_wiki/pages/21.html#id_f2c49975

あと「全てのファイル」を「UTF-8 LF」にして良い訳でもない。

22名無しさん:2011/10/30(日) 19:51:15
>>18
あの後、もしかしたらと思い、pearフォルダ内のphpをすべて666にしたら解決しました

その代わりTLもリプライも二重投稿するようになってしまいましたが

2322:2011/10/30(日) 19:56:43
cronはgoogleから持ってきていますが今ははずして手動で叩いてテストしてます

24名無しさん:2011/10/30(日) 20:02:17
>>21
ありがとうございます。ログとライセンスは違いました。
しかしそのページの情報を辿って問題を解決しました。

>>22
ありがとうございます。
しかしどうやらdata.txtの選択肢の数が少なかったのが原因だったようです。

25名無しさん:2011/10/30(日) 20:03:12
>>24>>22とありますが無視でお願いします。スレ汚し申し訳ない。

26名無しさん:2011/10/30(日) 21:11:40
【バージョン】 Ver.2.05
【設置鯖名】 @PAGES
【PHPのバージョン】5.3.8
【手動】 動く
【実行】 cron
【不明点】

動作自体は正しく動いていますが
自分が投稿した言葉にもTL返信をしているようで、そこから自分宛のリプを繰り返し
独り言をずっと続けてしまうことがたまにあります。
(今回は2分間隔で約1時間自分宛のリプライを繰り返していました。)

投稿用かTL返信用、返信用のどれかからそのキーワードを外すのが一番早いかと思うものの、
どれも外し難いものなので困っています。
過去に別件で試行錯誤して何か余計なことをしたせいかもしれないと思い、
今のところはEasyBotter.phpを新たに上げなおして様子を見ています。
自分の投稿ワードにリプライさせないようにするにはどうしたら良いのでしょうか?

27名無しさん:2011/10/30(日) 23:50:44
>>26
とりあえずセッティングファイルで、botのスクリーンネームが大文字小文字も含め正しいか再確認
リプライ上限回数もちょっと確認してみる

他スレか過去スレで同様の症状と対処を見た記憶があるので
適当なワードでスレッドを検索しまくることをおすすめする

28名無しさん:2011/10/31(月) 01:51:52
>>26
とりあえず応急処置ならこれかな
http://www26.atwiki.jp/easybotter_wiki/pages/29.html#id_2e3272f0

2926:2011/10/31(月) 03:21:53
>>27
スクリーンネームの記述が間違っていました…お恥ずかしい限りです。
「ttp://twitter.com/#!/ABCbot」の「ABCbot」に当たる部分のことですね。
ご指摘どうもありがとうございます。

>>28
上記の解釈で間違いが無いようでしたらこれで大丈夫だと思いますが、
念のため応急処置もしておこうと思います。
ご指南どうもありがとうございます。

30名無しさん:2011/11/01(火) 00:59:29
【状態】ver2.05 @PAGES GAE Cron2分で動作確認済み

<?php
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(2,"data.txt","reply_pattern.php");
$response = $eb->postRandom("data.txt");
$response = $eb->autoFollow();
?>

なら2分おきにツイート・リプライ対応・リフォローも完璧ですが。

<?php
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->autoFollow();
$response = $eb->reply(2,"data.txt","reply_pattern.php");
if(date("i") % 6 == 0){
$response = $eb->postRandom("data.txt");
}
?>

としても6分おきにつぶやかないどころか、2分おきにもつぶやきません
ランダムポストが昨日しない状態ですね。手動でもつぶやかないことも確認済みです。
簡単な記述なのに間違えてるのか見つけられずお恥ずかしい限りですが、ご教授よろしくおねがいします。

31名無しさん:2011/11/01(火) 01:52:35
>>30
if(date("i") % 6 === 0){
$response = $eb->postRandom("data.txt");
}

32名無しさん:2011/11/01(火) 02:09:08
>>31ありがとうございます
しかしこれでもダメなようです。
確認してもcronが止まってる様子はないので記述のミスだとは思うのですが。

33名無しさん:2011/11/01(火) 04:34:07
>>30
ttp://www26.atwiki.jp/easybotter_wiki/pages/25.html
落とし穴に注意2…CRONと設置サーバーの時間がズレている、指定した時間に実行の処理が終わらないとかは?
GAEで2分はタイトだからリプライ後でランダムポストだとズレるかも

34名無しさん:2011/11/01(火) 10:48:13
>>33
深夜に2.3回ほどつぶやいていたので、一分、大きくて二分以内の時間ズレが原因な気がしてきました。
こうなってくるとCRONの間隔を2分や3分にするのは厳しいので5分にすることを考えると、もはや「if」を使う必要がないので「if」なしでいきます。
時間指定のポストもその内やりたいと思っているのでその時に2分以内の誤差をカバーしても無理だったらまた質問したいと思います。
ありがとうございました。

35名無しさん:2011/11/03(木) 22:24:15
@pagesを使ってPHPのファイルをサーバーにアップロードしたいのですが…ちょっとイマイチアップロードの仕方が分かりません。色々検索もかけてみたりはしたのですがいまだに分からず…。
@pagesを使ってる方は、どのようにしてファイルをアップロードしているのですか?

36名無しさん:2011/11/03(木) 22:51:31
>>35の者ですが、やり方が分かりました!><なのでこれについての回答はしなくていいです。お騒がせ者でスミマセン;

37名無しさん:2011/11/06(日) 10:18:09
TLのツイートを拾って挨拶を返すときに例として、
おはようございます、〜〜〜さん
と、〜〜〜の部分にそのツイートをした人の名前を入れたいのですが、どうやればいいのでしょうか?

38名無しさん:2011/11/06(日) 14:22:42
>>37
本家や過去レス見たら分かると思うけど{name}を使う

39名無しさん:2011/11/06(日) 18:12:40
曜日ごとに違うファイルを呼び出したいのですが、どういう記述をすればよいのか分かりません。
例えば、月曜日にはmon.txtを、火曜日にはtue.txtを…といった感じです。

40名無しさん:2011/11/06(日) 19:32:35
>>39
http://www26.atwiki.jp/easybotter_wiki/pages/33.html
を見て時間のところを曜日に書き換えればいけます

41名無しさん:2011/11/06(日) 19:54:43
>>38
ありがとうございます
それってランダムにフォロワーの名前が出るものだと思ってました(;・∀・)

42名無しさん:2011/11/07(月) 19:01:06
>>40
ありがとうございます!
今週動かしてみます

43densya103:2011/11/08(火) 21:53:07
OAuthの設定について - 認証キーの取得で、botのアカウントにログインした状態で、やったのですが、Access TokenもAccess Token Secretも空白になります。
どうすればよいでしょうか?

44densya103:2011/11/08(火) 21:57:39
使っているバージョンは最新のものです

45densya103:2011/11/08(火) 22:00:48
すいません三回やったら出てきました

46名無しさん:2011/11/13(日) 21:30:13
いくつか単語を登録しておいてたとえばtlに「ラーメン」と出た時に「ラーメン」を使った返事を返すようにはできますでしょうか
できるなら書き方教えてください

47名無しさん:2011/11/14(月) 00:26:47
>>46
お約束で聞いておくけど、>>1は読みましたか?

んで、EasyBotter公式サイトを読んでいるだけで「これかな?」と思う部分が一つもありませんでしたかね

48名無しさん:2011/11/14(月) 00:40:51
>>46
ここは教えてと言えば手取り足取り教えるスタンスじゃないし、
自分から調べる気やPHP学ぶ気がない人には教えることはナイデスヨ?
意地悪ではなく、自分でメンテナンスできないと他のレン鯖の方に迷惑を掛けることを頭に残してね。

49名無しさん:2011/11/14(月) 01:24:36
TLに反応するbotを作成中で練習しているのですが(手動)
反応する言葉を何文か投稿し反応させると、全部にそれぞれリプを送ってしまいます。
例:「おはよう」とツイートし次に「おやすみ」とツイートすると「@おはよう」「@おやすみ」というように送ってしまう
直前のTL(「おやすみ」)にだけ反応させるためにはどうすればいいでしょうか?

50名無しさん:2011/11/14(月) 02:10:11
>>49
直近の反応ツイートに対しリプライを送るは改造になるかな、ここではスレ違い
あと仕様上の問題で直近反応語句に反応させるということは「同一ID」のツイートを読み込んで
リプライをする時に反応語句が複数ある場合、直近以外無視するという動作が必要になります。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

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