トップページphp
982コメント309KB

【Twitter】 BOT製作支援スレ part2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/01/18(月) 23:18:42ID:wnXKZf+j
前スレ
http://pc11.2ch.net/test/read.cgi/php/1254028559/
0004DAWNTO_Windy-melt ◆Windy/f9HNwg 2010/01/18(月) 23:41:31ID:???
いちおつ
0005nobodyさん2010/01/19(火) 00:20:40ID:???
さて前スレ>>993の質問が未回答だ

お邪魔します。phaさんの配布されている物を使って作成したbotなのですが、
複数件リプライを貰っているのに最新1件のリプライにしか反応(返事を)しない場合はどのような原因が考えられるでしょうか?
ちなみに手動で叩いてみてもやはり最新1件のリプライにしか反応しませんorz

前スレ>>993
とりあえずリプライ処理の部分のソースを書いてほしい。

0006nobodyさん2010/01/19(火) 00:24:08ID:???
いつも思うんだけどphaさんに聞きゃいいじゃん
ニートなんだろ?
0007nobodyさん2010/01/19(火) 00:29:23ID:???
>>6
phaさんは多分忙しいんだよ
0008nobodyさん2010/01/19(火) 00:41:35ID:???
>>1おつさん。
しかしマルコフ連鎖とかTwitterAPIについてならこっちだろうけど
配布botは基本phpなんだからphpのスレで聞くほうがいいと思うな。
botに使い方がわかんないんじゃなくてphpがわかんないんだし。
0009nobodyさん2010/01/19(火) 00:45:42ID:???
rubyで作ってる人少ないのかな。しょぼーん(´・ω・`)
0010nobodyさん2010/01/19(火) 00:52:04ID:???
>>9
いるいるノシ rubyは少数派だろうな
0011nobodyさん2010/01/19(火) 13:06:28ID:???
>>8
bot製作支援スレだからphpもbot製作の範囲じゃね?
0012DAWNTO_Windy-melt ◆Windy/f9HNwg 2010/01/19(火) 18:49:26ID:???
>>8
botにかかわれば何でもおkだと思います
0013nobodyさん2010/01/19(火) 23:52:08ID:???
bardothodolさんのサポート掲示板大変だな
phaさんやphaさんのスクリプトを元にした8bitnoteさんとこの質問が押しかけてる
せめてbardothodolさんのphp使ってから聞いてやれよw
0014nobodyさん2010/01/19(火) 23:52:48ID:???
>>8
そんな事言いだしたらマルコフ連鎖もAPIも全部該当スレでやれって話になるじゃん
0015nobodyさん2010/01/20(水) 12:03:43ID:???
>>13
ああいうのこそ初心者スレいくべきとは思うな。
人がいいのに甘えた初心者が手当たり次第に質問じゃ
そこもブログや掲示板閉じるように追い詰められかねん。
0016nobodyさん2010/01/20(水) 15:32:07ID:???
初心者にはググれで解決だろうに…

というかcronの無駄だからジェネレータで我慢しててほしい
0017nobodyさん2010/01/20(水) 15:40:46ID:???
bardothodolさんのソースを紹介してもらってるのに
phaさんのソースで統一させてるからそれ使えませんとか噴いたw
0018nobodyさん2010/01/20(水) 17:01:00ID:???
http://buzztter.com/ja/k/%23tbjp
お前らw
0019nobodyさん2010/01/20(水) 21:01:16ID:???
>>18
何これ?
0020nobodyさん2010/01/21(木) 10:50:12ID:???
URL貼るだけの子は本人もうまく説明はできんからほっといていい。
0021nobodyさん2010/01/21(木) 13:03:57ID:???
>>20
晒されちゃったね、荒らしボット群w
0022nobodyさん2010/01/21(木) 14:38:46ID:???
tbjpってなんだ?
0023nobodyさん2010/01/21(木) 14:46:14ID:???
>>21
何がしたいのか、どういう意味なのか説明してくれんか。
URLだけ張られても何がしたいのかさっぱりわからん。
0024nobodyさん2010/01/21(木) 17:02:56ID:???
>>18
これやれば『twitterでテキサスバーガーが話題!!』とか余裕で出来るねw
0025nobodyさん2010/01/21(木) 22:09:32ID:???
えっと、bot使ってばずらせようって話?
0026nobodyさん2010/01/21(木) 23:46:33ID:???
よくわからんがこのスレには全然関係なさそうってことはわかった。
0027nobodyさん2010/01/22(金) 01:33:06ID:???
>>18
ワロwww

こういう荒らしbotが増えてるからGMailのエイリアスメアドは使えなくするみたいだね。
0028nobodyさん2010/01/22(金) 01:53:24ID:???
連絡先からの検索避けになるかわからないながらも
一応gmailに+xxxxつけて登録してるのに><
0029nobodyさん2010/01/22(金) 07:37:09ID:???
え、alias使えなくなるの?それは困るなぁ。ソースきぼん。
もちろん荒らしじゃなくて普通のbotだけどね><
0030nobodyさん2010/01/22(金) 10:04:17ID:???
すでに登録してるのも変更しなきゃいかんのか?めんどくせえな
0031nobodyさん2010/01/22(金) 12:35:47ID:???
>>9-10
rubyで作ってるよ。
Twitter Gem使うとかなり楽だね。

Margarineっていうrubyで書かれた人工無能エンジンがあって、それを使いたかったからrubyになったんだけども。
既にサイトも消えてるし開発も止まってる(?)みたいだけど、昔IRCのBOTに使ったらいい感じだったので。

現在テスト中…。
0032nobodyさん2010/01/23(土) 15:38:15ID:???
gem使ってないなあ。めんどそうで。
ファイル1個のライブラリがあれば
使ってみてもいいけど。
0033nobodyさん2010/01/24(日) 13:51:38ID:???
phaさんとこの使ってる人でreply返しの反応が悪かったら
鯖を変えると良くなるかもしれない
0034nobodyさん2010/01/25(月) 13:04:03ID:???
鯖変えるって言ってもいいところ無いんだよな
ここはケチらず有料にするしかないのか
0035nobodyさん2010/01/25(月) 13:07:45ID:???
自分は有料鯖の動きが悪くて無料鯖に替えたら動き良くなったよ
0036nobodyさん2010/01/25(月) 18:26:11ID:???
>>35
どこ?
0037nobodyさん2010/01/25(月) 18:33:31ID:???
APIについて質問するようなスレってないんでしょうか。
ここでもいいんですか?
0038nobodyさん2010/01/25(月) 18:39:39ID:???
>>37
いいんじゃない?
0039nobodyさん2010/01/25(月) 21:45:49ID:???
jQuery 1.4を使ってTwitterに投稿しようとしています。
テスト環境はFirefox 3.5.7 Windows + Firebug です。

jQuery.ajax({
 "url":'http://twitter.com/status/update.json',
 "data" : { status : "test" },
 "success" : function( data, dataType ){
  console.log("=success="); console.log( data ); console.log( dataType );
 },
 "error" : function( req, status, thrown ){
  console.log("=error="); console.log( req ); console.log( status ); console.log( thrown );
 },
 "type" : "POST",
 "dataType" : "json"
});

こちらを実行すると 404エラーになってしまいます。
HTMLで下記のようにやると問題なく実行できます。

<form action="'http://twitter.com/status/update.json" method="post">
<input type="text" name="status" value="test" />
<input type="submit" />
</form>

そもそもBASIC認証ダイアログが出てこないので、認証できていないのが
原因だと思うのですが、どのように対処したらよいでしょうか。
0040392010/01/25(月) 21:53:16ID:???
>>39
追記です。

こちらで配布されているTwitterAPI.jsを使うことでは投稿できました。
ttp://www.otchy.net/javascript/twitter-api/

なぜこちらを使わないかというと、POSTの方式が動的にformとiframeを作る方法だからです。
リストのメンバー削除APIが HTTP DELETEを使うので、formだと出来ないのです。
ttp://apiwiki.twitter.com/Twitter-REST-API-Method%3A-DELETE-list-subscribers

ところで今↑のURLを読み直したら _method=DELETE でも出来るそうなので、
ちょっとそちらも試してみたいと思います。
0041392010/01/25(月) 21:59:37ID:???
>>40
連投申し訳ありません。
TwitterAPI.jsでも_method=DELETEをパラメータとして渡すことで実現できました。

jQueryで404 Not Foundになる理由は解明できませんでしたが、
ひとまずこちらで作業を進めたいと思います。
0042nobodyさん2010/01/25(月) 23:43:02ID:???
フレンドやフォロワー取得がpage指定できなくなってたり
微妙にAPIの仕様変わってるぽいね。
0043nobodyさん2010/01/26(火) 19:37:09ID:???
FileQのcronに関しての質問です。
2分間隔で作動させているphpと、15分間隔で作動させているphpがあるのですが、
一昨日からcronの実行間隔が勝手に10分間隔になってしまうようになりました。

コマンドは、
wget -q -O /dev/null phpのURL
で統一しています。
このcron設定が五つ存在していて、元の時間に修正しても一定時間過ぎるとまた
10分間隔に戻ってしまいます。
どのように対処したらよいのでしょうか。

拙い文面ですが、何か分かる方がいらっしゃいましたら御教授願います。
0044nobodyさん2010/01/27(水) 00:41:44ID:???
>>43
FileQ側が設定してると思う。
諦めたほうがいい。

あとなぜwgetなの?
0045nobodyさん2010/01/27(水) 01:25:32ID:???
phaさんのスクリプトならこっちも質問掲示板あるよ
http://jbbs.livedoor.jp/internet/6629/
0046nobodyさん2010/01/27(水) 07:55:05ID:76ZGTwKV
>>9
これなんてどう?
■[オススメ]Oauth認証できるRuby製TwitterBotプログラムの設置方法
http://d.hatena.ne.jp/sifue/20100125/1264394020
0047432010/01/27(水) 20:23:06ID:???
>>44
やはりそうですか…潔く諦めて、別の無料cronサービスへ乗り換えました。
そちらでは快適に動作しております。

wgetだった理由は、php -qで動作がイマイチだった所為でした。
動くのなら、動きやすい方を選んだ方が良いと思ったのです。
0048nobodyさん2010/01/27(水) 21:47:57ID:???
OAuthって今のところどんなメリットがあるのかな。
セキュリティと、アプリの名称が変えられるのと、
APIの使用回数が増える(予定)くらい?

投稿回数が増えると嬉しいのだけど、変わらないよね?
0049nobodyさん2010/01/27(水) 22:12:15ID:???
むしろQAuth以外についてはいずれ使えなくなるっていうデメリットがある。
0050nobodyさん2010/01/27(水) 22:13:39ID:???
いけねQじゃなくてOだった。
0051nobodyさん2010/01/27(水) 22:52:22ID:kD/M5EZ6
>>48
Botにはあんまり関係ないけど、

一度発行したアプリケーションの
コンシューマ・キーとコンシューマ・シークレットを変更して、
そのアプリケーションからのアクセスを禁止したりできたりする。

Twitterは、BrowserとClientの二つしかないけど、
アプリケーションごとに権限を設定する機能とかつけれたりと
まあ、いろいろと機能がある。

そんなこんなで、だんだんBasic認証が廃止されてく。
0052nobodyさん2010/01/28(木) 00:23:46ID:???
また投稿数多すぎて規制された…orz
回避方法考えるのめんどい。
0053nobodyさん2010/01/28(木) 11:33:21ID:???
そうだな。
投稿数減らせばいいだけだもんな。
0054nobodyさん2010/01/28(木) 22:22:24ID:???
返信タイプのボットだと1時間150回のリクエスト制限超えちゃうことあると思うんだけど、制限増やす方法とかあったりするですか?
0055nobodyさん2010/01/29(金) 01:30:58ID:???
10分に一回リプライとかにすればいいじゃない
0056nobodyさん2010/01/29(金) 11:20:34ID:???
TL取得と投稿で2回。
一体何秒単位でコールする気なんだ。
0057nobodyさん2010/01/29(金) 11:41:40ID:???
フォロワーが作ってるbotはTL反応を仕込んでいるのでよく規制される
疲れた→頑張れ、応援するよ
ぐらいならいいんだが、あいさつやそのキャラの名前、爆発しろとか色々反応する
規制されるって分かってるなら反応ワードを減らせばいいのに…
リプライせずに全体ポストするのもTLが無駄に流れるから好きじゃない
0058nobodyさん2010/01/29(金) 12:55:15ID:???
GAEで1分で回すバカも大勢いるし、初心者向けのBOT作り方とかは
やってはいけないこととか詳細に書く気ないんだったらさっさと記事削除しろと思う
0059nobodyさん2010/01/29(金) 14:28:35ID:???
バカのために制限があるんだから問題ない

つーかPOST別枠ってリミット時だけでカウントはされるってこと?
0060nobodyさん2010/01/29(金) 17:04:17ID:???
>>58
2分で回しててごめんなさい。

それはそうと、やってはいけないことってのをkwsk
0061nobodyさん2010/01/29(金) 19:29:32ID:???
だって30000人もfollowersがいるんだもん。
0062nobodyさん2010/01/29(金) 23:24:38ID:???
>>60
やっちゃいけないというほどではないけど、嫌われるのは
・パブリックタイムラインを検索して引っかかったのを無差別にRT
・無駄にポストが多い(リプライに.を付けるとか)
・中の人がやたらポストする、自己主張激し杉
くらいかな、自分が見聞きした中では
周りを気にしすぎるのもどうかと思うけど、心に留めて置いた方がいいかも
0063nobodyさん2010/01/30(土) 07:21:16ID:???
bot同士の会話にわざわざ(.@)付けられるとイラッとする
会話相手のbotはフォローしてないから断片的にしか見えないっつーの
0064nobodyさん2010/01/30(土) 07:32:15ID:???
>>62
特定ワード拾って無差別RTやリプライすんのは自分のフレンドTLでもうぜーうぜー言われてるわ。
フォローしてなくてもMentionに拾われるしな。
フォローされた相手に飛ばすならともかく無関係な相手には自重した方がいいとは思うな。

>>63
それはbotがしちゃいけないことじゃなく
俺にとって腹立つだろ。あんまり関係ない。
0065nobodyさん2010/01/30(土) 12:22:50ID:???
あとは自動フォロー返し機能があるbotのフォロー外しても被フォローが解除されないとか
(ブロックで任意で外しても再フォローされるみたいなのもある)
0066nobodyさん2010/01/30(土) 15:25:00ID:???
まとめると

・パブリックタイムラインを検索して引っかかったのを無差別にRTとかリプライ
・無駄にポストが多い(リプライに.を付けるとか)
 bot同士の会話にわざわざ(.@)付けるな
・中の人がやたらポストする、自己主張激し杉
・自動フォロー返し機能があるbotのフォロー外しても被フォローが解除されないのはなんとかしろ
0067nobodyさん2010/01/30(土) 17:23:25ID:???
フォロー返しのプログラムはすぐ書けたけど、
リムーブ返しのプログラムは考えてみたけど正直めんどい。
0068nobodyさん2010/01/30(土) 19:19:30ID:???
>>66
フォロー外したい時はブロックすればいいじゃない
0069nobodyさん2010/01/30(土) 21:22:10ID:???
ブロック数が多すぎるとスパムアカウント扱いされるって聞いたから、フォロー解除はブロックしてねっていうのも考えものかも
0070nobodyさん2010/01/30(土) 21:40:10ID:???
一時的なブロックなら大丈夫だろうけど>>65のケースは困りものだ
0071nobodyさん2010/01/30(土) 23:20:54ID:???
再フォローは謎だな。どういうプログラム書いてるんだろう?
0072nobodyさん2010/01/31(日) 00:34:29ID:???
OAuthで動かしてるボットにメールが来てて、OAuth API が suspended になってた。
前も止められたけど、メールは来なかった。1日に数回の投稿じゃ止められるのかなあ。

This is a notice that your OAuth token for 「ここにOAuthでの名称」 has been suspended from interacting with the Twitter API.

Please make sure that your application follows Twitter's policies, including the Twitter rules, the API rules, and the automation rules.

To request for your token to be re-enabled, please write to api@twitter
0073nobodyさん2010/01/31(日) 14:22:29ID:???
>>72
なんか変なことやらかしてるだろ。
ルール外のことやってるから止めてるって読めるぞ
0074722010/01/31(日) 15:21:03ID:???
>>73
そうなんだよね、2行目がモロに。
同じ方法で動かしてる他のbotや、携帯で投稿するスクリプトも同じものなんだけど
なぜか1つだけ狙われた。

「ついに友達の電話が契約切られたっぽい。レンタルしたまま7」系のspam botをブロックしたから
逆恨みされたってのはあるな。
0075nobodyさん2010/01/31(日) 20:36:36ID:???
>>67
phpじゃなくて、Twitter4J+GAEでその方法を解説してるサイトなら知ってるよ
0076nobodyさん2010/02/01(月) 04:30:02ID:???
最近>>47に書いてあるようなBOT増えたけど何が目的なんだ?
0077nobodyさん2010/02/01(月) 12:12:55ID:???
間違えたW >>74
0078nobodyさん2010/02/01(月) 14:06:42ID:???
>>77
>>18にもあったけど、ハッシュタグ荒らし、恣意的なバズり、>>72みたいな直接攻撃が目的だろうね。
0079nobodyさん2010/02/02(火) 00:23:56ID:???
ごめん、またOAuthに戻るんだが前スレ891-893のソースをお借りして
function serif($reply_name,$name,$com){ のあとに

$gyu=array("台詞1","台詞2","台詞3");
$janken=array("台詞1","台詞2","台詞3");

$reply_name = "@$reply_name";

if(preg_match("/ぎゅー|ぎゅっ/u",$com)){
$key = array_rand($gyu);
$post = $gyu[$key];
$return =$reply_name." ".$post;
}
else if(preg_match("/じゃんけん|ジャンケン/u",$com)){
$key = array_rand($janken);
$post = $janken[$key];
$return =$reply_name." ".$name."".$post;
}
else{
$mes = array("台詞1","台詞2","台詞3");
$key = array_rand($mes);
$post = $mes[$key];
$return = $reply_name." ".$post;
}
return $return;
}

と放り込んだんだけど、スクリーンネームが出てこない&全てがelseに対する
リプライになるんだ…
我ながらバカだと思いつつ、訳わからなくなってしまったorz
指南頂けると嬉しいんだ…
0080nobodyさん2010/02/02(火) 00:37:20ID:???
>>79
$comがUTF-8じゃないんでは?
0081nobodyさん2010/02/02(火) 20:58:28ID:???
>>80
ありがとう…しかし意味がイマイチとれない初心者でごめんorz
保存はUTF-8でやってるんだが…それとも
mb_convert_encodingで$comをコンバートするってこと??
0082nobodyさん2010/02/03(水) 13:20:57ID:???
判別してみたら?
0083nobodyさん2010/02/03(水) 17:12:21ID:???
$comをechoやら何やらで出力するようにして確認してみたら?
0084nobodyさん2010/02/03(水) 23:35:22ID:???
ごめん、つぶやきの2ページ目以降を取得したいんだけど、

$req = $to->OAuthRequest("http://twitter.com/statuses/friends_timeline.xml?page=$page",array(),"GET");
$req_array = simplexml_load_string($req);

$pageが1でも2でも3でも最初の20件しか取得できない…。
これじゃ2ページ目以降はとれないんでしょうか?
0085nobodyさん2010/02/03(水) 23:43:12ID:???
echo "http://twitter.com/statuses/friends_timeline.xml?page=$page";
0086nobodyさん2010/02/03(水) 23:55:44ID:???
>>84
pageは廃止になってるはず。
max_idを使うがよろし。
0087nobodyさん2010/02/04(木) 00:04:22ID:???
>85-86
ありがとうございます!
あの後friends_timeline.xml",array("page"=>$page)で取得できました!
でもpageは使わない方が無難なんですね…。
max_idだとforeach〜の中から一番下のmax_idをひっぱってくるやり方がわからなくて…。
もうちょっと勉強してきます。
0088nobodyさん2010/02/06(土) 11:24:05ID:???
pageが使えないのを確認したのはfriends followers あたりでタイムラインはまだpage有効じゃなかったかな。
そのうち使えなくなるかもしれんがよくわからん。
0089nobodyさん2010/02/06(土) 16:56:58ID:???
廃止予定はfriends_timelineで、pageはオプション仕様なだけで捕鯨中は使えない事がある。
0090nobodyさん2010/02/07(日) 13:15:55ID:???
TwitterのOAuthについての質問はここ?
0091nobodyさん2010/02/07(日) 13:21:25ID:???
twitterとか時代遅れだし
まだこのすれあったの?wwwwwwwwwwwwww

変なやつらwwwwwwwwwww
0092nobodyさん2010/02/08(月) 09:36:47ID:???
そういや込んでるときはページさかのぼれないみたいな説明あった気はする。
あとリスト関連のAPIってなんか変な呼び出し方だな。どうでもいいけど。
0093nobodyさん2010/02/09(火) 13:36:25ID:???
質問です。
followingのアイコンを取得したいと思っています。
その際、APIから画像URLを取得しようとしているのですが、
日本語ファイル名の画像がアップロードされていると
それがそのままURLとなっているため、うまく取得できません。
具体的には、たとえば「アイコン.jpg」というファイルがアップロードされていると

1.http://a1.twimg.com/profile_images/{id}/??¢?????????_normal.jpg

のようなURLが返ってくるのですが、このURLそのままでは接続できずアイコンが取得できません。

正しいURLは下記の状態だと思うのですが、1のURLから2、もしくは3に変換する方法をご存じないでしょうか?

2.http://a1.twimg.com/profile_images/{id}/アイコン_normal.jpg
3.http://a1.twimg.com/profile_images/{id}/%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3_normal.jpg

URLエンコード、デコード、文字コード変換等試しましたが現状どれもうまく動きません。
また、言語はJavaを使用していますが、何か情報あれば言語問わず教えていただけると助かります。
0094nobodyさん2010/02/09(火) 13:51:01ID:???
http://mikami.fuzoku.nu/2010/02/post_603.htm#comments
0095nobodyさん2010/02/09(火) 18:19:32ID:???
>>93
これならscreen_nameで画像取得できるけどだめかな?
ttp://www.ideaxidea.com/archives/2009/09/tweetimage.html
ttp://usericons.relucks.org/
0096nobodyさん2010/02/09(火) 20:48:05ID:???
アイコンはAmazonのEC2だかのクラウドに保存してるって聞いたけど
0097932010/02/09(火) 23:10:04ID:???
>>95
ありがとうございます。
少し私の説明が足りませんでした。実はアイコン画像のLast-Modifiedを取得したいのです。
ttp://tweetimag.es/のほうはアイコンをキャッシュしているようなので、
ユーザがアイコンを変えた日ではなくアイコンがキャッシュされた日付が戻っているようです。
ヘッダーに"X-Twitter-Origin"という元画像へのURLがあるのでそれを使って元画像に飛ぼうとして
93の状態になっていました。
ttp://usericons.relucks.org/のほうは試してなかったのですがリダイレクトのようなので
なんとか取得できそう…なのですがまだうまくいってません。
もう少し頑張ってみます。

0098nobodyさん2010/02/10(水) 10:29:17ID:uTBwsG7R
ここはどこのツール使っていたか知ってる?

UCC、Twitterでのキャンペーン告知を謝罪 複数アカウントのBOTでメッセージ送信
http://www.itmedia.co.jp/news/articles/1002/05/news076.html
0099nobodyさん2010/02/10(水) 10:51:09ID:???
自作スクリプトでは?
0100nobodyさん2010/02/10(水) 13:24:33ID:???

「Twitterを理解していなかった」――UCC、キャンペーン“炎上”を説明 勉強会で経験共有へ
http://www.itmedia.co.jp/news/articles/1002/09/news081.html

>プログラムの構築は外部の企業に任せた
0101nobodyさん2010/02/10(水) 13:39:54ID:???
UCC垢10個は見つけたけどもうひとつあったとは
0102nobodyさん2010/02/10(水) 15:46:16ID:???
@つきはフォローしてなくても強制的にリプライに表示される仕様も問題ではあるが
実際のところそういう仕組みのbot多いよな。
0103nobodyさん2010/02/11(木) 20:26:16ID:???
モノクロ二階調さん色々すごすぎる。
■ このスレッドは過去ログ倉庫に格納されています