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

【Twitter】 BOT製作支援スレ part2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/01/18(月) 23:18:42ID:wnXKZf+j
前スレ
http://pc11.2ch.net/test/read.cgi/php/1254028559/
0320nobodyさん2010/04/02(金) 00:45:30ID:???
>>319
動かなかったときが怖い。
一日一回しか動かないbotとかあるしね。
0321nobodyさん2010/04/02(金) 03:42:03ID:???
エイプリルフールネタのbot面白いのは面白いけど
bot休止しますだのbot辞めますだのは本当かどうか悩んだわ
そう言っても動いてリプも返すのもいるっていうことは嘘?

管理人の分かる所を行ってみたけど、うはwフォロワーさん引っかかってるww
というのを見たときはエイプリルフールですからでもなんだかな…と思ったわ
0322nobodyさん2010/04/02(金) 06:31:17ID:???
エイプリルネタはなあ・・・そういうの以外うまい嘘思いつかないよw
だからやらなかった
0323nobodyさん2010/04/02(金) 13:26:05ID:???
修造がやる気なくなってたのは面白かった。
0324nobodyさん2010/04/02(金) 22:23:11ID:???
だから修造は中の人g(ry
0325nobodyさん2010/04/04(日) 00:25:27ID:???
ゲームのMOTHERのbotでいいのない?
0326nobodyさん2010/04/04(日) 11:43:13ID:???
>>325
ググレカス
0327nobodyさん2010/04/07(水) 11:57:52ID:???
>72と同じメールが届いてAPIが止められたんだけど
復帰させる方法の書いてあるページにはどんな単語でぐぐると辿りつける?
アカウント自体が止められてる感じじゃないんだよな…
0328nobodyさん2010/04/07(水) 12:55:39ID:???
ttp://www.twitnews.jp/news_lBwgUT1gg.html
適当にググったらこんなん出たぞ
0329nobodyさん2010/04/07(水) 23:46:07ID:???
「プログラミングができなくても作れる」というのを真に受けて、
プログラムのプの字も知らないのにbot作り始めてしまいました。
公式サイト・非公式wikiを見てもググっても解決出来ず、
そろそろ5日ほど同じ所で足踏みしているので、
お暇な方がおられたら教えていただけませんか。

なんとか定期的にコメントを発するようには出来たのですが、
なぜかリプライをしてくれません。
別のアカから手動で@コメントを送った後、botのphpにアクセスすると、
用意していた返答をしてくれることもあります。

あと、関係があるのかわかりませんが、botのphpにアクセスすると、

Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/○○○○○○○○○/EasyBotter.php on line 237

Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/○○○○○○○○○/EasyBotter.php on line 237

Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/○○○○○○○○○/EasyBotter.php on line 237

Warning: preg_match() [function.preg-match]: Unknown modifier 'g' in /usr/local/www/○○○○○○○○○/EasyBotter.php on line 237

という文章が表示されることがあります。line279の場合もあります。
調べたらよく似た記述でした。
03303292010/04/07(水) 23:49:42ID:???
すみません、かんじんなことを書き忘れていました。
使わせてもらってるのは「EasyBotter」です。
0331nobodyさん2010/04/08(木) 00:01:24ID:???
>>329
なんであっちの掲示板で聞かないの?
恐らくreply_pattern.phpmp記述ミスじゃないかね
03323292010/04/08(木) 00:05:31ID:???
>>331
すみません、いつもみているもので2ちゃんのほうが敷居が低くて。
reply_pattern.phpを見直して、何が悪いのか分からなければ、
あちらで質問させてもらうことにします。
レスありがとうございました。
0333nobodyさん2010/04/08(木) 10:29:07ID:???
ループ制限に引っかかってるだけの希ガス
0334nobodyさん2010/04/08(木) 14:28:08ID:???
>>332
あっちもしたらばの2ch風掲示板なんだから変わらないだろ

とりあえず正規表現のパターンおかしいんじゃないの?
つまり、見られたくないところ以外のソース晒せと
0335nobodyさん2010/04/08(木) 23:32:56ID:???
Twitterの検索APIってなんか日本語の検索がおかしいよね( ・ω・)

locale=jaにして、検索結果に指定した単語が含まれているか見たらうまくいったけど、
localeを指定しないで検索しても1件もヒットしないことがあったり(・ω・)
0336nobodyさん2010/04/09(金) 00:08:51ID:???
それはtwitterに限らずに情報システムというのはそういうものだ
0337nobodyさん2010/04/09(金) 01:10:00ID:???
>>334
すみません、見た目の体裁ではなくて2ちゃん自体が好きなだけかもしれません。

あちらでもいくつかレスをただいたので、
こちらでさらに質問を続けていいのかわからないのですが……。
お手上げ状態ですので、アドバイスいただけると嬉しいです。
ソースを、ご指示に従って個人的な部分だけ伏せてうpしてみました。
ttp://www.dotup.org/uploda/www.dotup.org794874.zip.ht
パスはpassです。
0338nobodyさん2010/04/11(日) 07:06:59ID:???
正直、phaさんとこのものはphaさんとこのBBSで治めて欲しかったり
0339nobodyさん2010/04/11(日) 10:57:55ID:???
あちらも教えてチャンが酷くてな・・・
0340nobodyさん2010/04/11(日) 11:46:19ID:???
3月からずっと惨いもんな…見に行くのやめたよ
既出の質問ばかりループしているし、答えたら答えたで
すぐまた>>○○さんうまく行かないんですけど…とすかさず質問
自分で1つ1つ不具合になる原因を潰していこうともしない

説明以外何もいじってませんと言っても、不具合起きてる以上
何か余計にいじったからなった結果だろうに
0341nobodyさん2010/04/11(日) 16:00:07ID:dMoiZCcX
このbot使いたいんだけど、
エラーになるのはなんでかな?

●たごさく
http://twitter-tagosaku.blogspot.com/2010/01/twitterbot.html

●エラー
Exception:リモート サーバーがエラーを返しました: (403) 使用不可能
0342nobodyさん2010/04/11(日) 17:39:50ID:???
掲示板を作らなければこんなことにはならなかったんや…
それはそれでこっちに流れてきそうだけどな
0343nobodyさん2010/04/11(日) 17:47:14ID:???
まあそれはそれで、2chのほうがスルースキル高くていいだろ
問題外なのはスルー方針だし
0344nobodyさん2010/04/11(日) 20:13:49ID:???
あのBBSは質問しても返ってくる答えは>>○○を見てくださいばっかり。
他のスレはともかく初心者スレでもそれってどうなの?と思う。
0345nobodyさん2010/04/11(日) 20:20:29ID:???
phaさんとこのソースは使いにくいからbardothodolさんのソースを自分で改造して使ってるんだが、
こっちの掲示板は過疎すぎてさびしい…

同じリプライに対して2、3回返信してしまうんだけど、最終idが正常に記録されてないんだろうか
0346nobodyさん2010/04/11(日) 20:59:43ID:???
>>344
釣りか?初心者でも質問の初心者じゃあないだろ?
0347nobodyさん2010/04/11(日) 21:13:47ID:???
>>345
あっちは過疎ってるね
自分はサーバーとcronを変えたら、ソース自体をいじってないのに多重リプライ
しなくなったよ
0348nobodyさん2010/04/11(日) 21:22:56ID:???
>>344
見に行ったが日本語でおkな質問も多いなw
ディレクトリの意味が分からないとかアップロードはどうしたら良いですかとか
初心者なのはPHPだけにしてほしいだろうな
0349nobodyさん2010/04/11(日) 22:54:01ID:???
>>344
なんでそう返事されるか考えたことある?散々既出の質問だからだよ
あとテンプレ使ってくれないと、的確な返事が出来ないとかな
日本語おkな質問でジャストな答えをよこせっていう方がどうかと思う

ああ、そういえばプログラミングできなくても〜というのは
看板に偽りだとぬかしたお方でしたか?
0350nobodyさん2010/04/12(月) 00:22:40ID:???
>>347
cron変えたら安定した!気がする
ありがとう
0351nobodyさん2010/04/12(月) 01:38:12ID:???
あの手のエラーが出ますわかりませんレベルの質問に
怒らず応答してやってるだけで尊敬するよ。
環境やなんてエラー出たかすら見ないだもん。俺にゃとても無理だ。
0352nobodyさん2010/04/12(月) 01:38:53ID:???
見ないじゃなく言わないだった。
0353nobodyさん2010/04/12(月) 17:55:36ID:???
OAuthを初めて触るんだけど、サーバが独自SSL使えないと無理なのかな?
0354nobodyさん2010/04/13(火) 11:09:57ID:???
>>353
まずOAuthがどんな仕組みなのか調べることから始めたら?
0355nobodyさん2010/04/13(火) 14:28:06ID:kQkBGWqM
>>XXX
まずYYYYYYがどんな仕組みなのか調べることから始めたら?

bot対応のレスっぽいと思ってしまった
0356nobodyさん2010/04/13(火) 17:23:57ID:???
同じサーバー内で同じスクリプト(bardothodolさん参考)で作った複数のbotを管理してるんだが、
そのうち1つのbotだけが延々とリプライを繰り返してしまう…
記録するファイルのパーミッションも書込み可能にしてあるのにな

機械的に動かしてるとアカウント自体が不安定になることってあり得る?
0357nobodyさん2010/04/13(火) 17:34:43ID:???
>>356
同じサーバーに複数bot設置してるけど、どれも普通に動いてる。
なんか、@pageでそんな症状をよく聞く。
上にも書いたけど、FWC使ってる場合は延々リプしてた人がいたので
まずはcronを変えたらどうだろう?
モノクロ2階調 cron 募集 で検索かけると多分幸せになれる
0358nobodyさん2010/04/13(火) 19:42:17ID:???
>>357
FWCって"Free Web Cron Service"?
サーバーはXREAでFree Web Cron Serviceを使ってるんだが、動作不安定だったGAE-Cronよりは良くなったような…
色々機能入れてるからソース自体がだめかもわからん
ありがとう
0359nobodyさん2010/04/14(水) 00:35:32ID:Vc66P1Z8
正直pha要らない
あれのせいで技術もないような奴が設置した
どうでもいいspamまがいのbotが多すぎる
0360nobodyさん2010/04/14(水) 00:53:51ID:???
いらないと言っても仕組み上簡単に参入できる仕組みなんだから違うシステムが出てくるだけ
それがtwitterだろ
0361nobodyさん2010/04/14(水) 03:50:43ID:???
技術がある奴がいいbotが作れるってもんじゃないから
ほとんど関係無いと思うが
0362nobodyさん2010/04/15(木) 12:01:56ID:HgPxMx/9
twitter4jを使ってOAuth認証をしようとしているのですが、
一番最初のRequest tokenを取得する時点で、

Status: 401 Unauthorized

<?xml version="1.0" encoding="UTF-8"?>
<hash>
<request>/oauth/request_token</request>
<error>Invalid / suspended application</error>
</hash>

というエラーが返ってきます。

twitter4rで試しても同じ結果になりますので bot 側ではなく、
http://twitter.com/apps の設定内容がおかしいのかな?
と思っていますが、どなたか何かヒントをいただけないでしょうか?

Consumer key, Consumer secret の内容は正しく、
http://twitter.com/apps に登録したアプリケーションの
名前の下には「有効化」と書かれています。
(Suspended されていない?)

■環境
* WindowsXP Pro SP3
* java version "1.6.0_19"
* javac 1.6.0_19
* Eclipse SDK
Version: 3.5.2
Build id: M20100211-1343
* twitter4j-core-2.1.2-SNAPSHOT.jar
0363nobodyさん2010/04/15(木) 12:48:46ID:???
エスパーじゃないから開発環境書かれても
それで何をどういう風に作ってそうなったかなんて知らん
0364nobodyさん2010/04/15(木) 13:27:18ID:HgPxMx/9
説明不足でごめんなさい。
作ってるのはOAuthの認証だけで、
Tweetする処理などはまだです。
ソースコードはこんな感じです。

private static void tryOAuth()
{
  try
  {
    Twitter twitter = new TwitterFactory().getInstance();
    twitter.setOAuthConsumer("内緒", "内緒");
    twitter.getOAuthRequestToken();
    // ↑ここでTwitterExceptionが発生。
    // 中身は401 Unauthorized。
    System.out.println("Succeeded.");
  }
  catch(Exception e)
  {
    System.out.println("Exception occurred.");
  }
}

自前でOAuthを書かずにTwitter4Jを使っていますが、
オフィシャルのコード例
http://twitter4j.org/ja/code-examples.html の 7. OAuth認可)
と大差ないですし、何がよくないのかなぁと。
0365nobodyさん2010/04/15(木) 13:54:23ID:???
アイパスが内緒だからだな!
教えてよ
0366nobodyさん2010/04/15(木) 14:00:18ID:???
だめに決まってんじゃないですかw
0367nobodyさん2010/04/15(木) 14:07:50ID:???
昨日のtwitterの初の技術者向けカンファレンス、Chirp面白かったな。
APIも目新しい情報だらけ。
0368nobodyさん2010/04/15(木) 16:36:51ID:???
>>367
どっかにレポート記事とか載ってない?
0369nobodyさん2010/04/15(木) 16:40:05ID:???
>>368
http://jp.techcrunch.com/archives/20100414twitter-user-streams-annotations/
http://jp.techcrunch.com/archives/20100414live-twitter-ceo-ev-williamss-chirp-keynote/
http://jp.techcrunch.com/archives/20100414twitter-has-105779710-registered-users-adding-300k-a-day/
http://jp.techcrunch.com/archives/20100414qa-twitter-execs-answer-the-tough-questions-at-chirp/
0370nobodyさん2010/04/16(金) 17:11:40ID:???
こういったbotを作るのってどうやって実現しているのですか?
http://photozou.jp/photo/show/291196/36256150

Twitterご利用明細書メーカー作ってみた
http://lil.la/dialy/dialy-twitter/twitterbillingmaker/

0371nobodyさん2010/04/17(土) 03:11:42ID:???
bot…?
0372nobodyさん2010/04/17(土) 16:45:01ID:???
>>370
どうやるんですか、の時点であなたにはできない。

頭のいい人はもうできてる
普通の人は調べてる
あなたのような人は何もせず聞くばかり
0373nobodyさん2010/04/17(土) 16:56:20ID:qT79J4bw
>>364
今日公開されてたキャラボット(http://charactorbot.appspot.com/?&locale=ja)っていうボットジェネレーターのソースからだけど、

http://sourceforge.jp/projects/charactorbot/svn/view/tags/charactorbot_1_00_000/charactorbot/src/org/soichiro/charactorbot/server/TwitterBot.java?view=markup&revision=25&root=charactorbot

を見てみると最新のTwitter4jで実装の仕方変わったみたいだよ。

AccessToken accessToken = new AccessToken(account.getToken(),account.getSecret());

Twitter twitter = new TwitterFactory().getOAuthAuthorizedInstance(account.getConsumerKey(),account.getConsumerSecret(),accessToken);

こんな感じにしてTwitterのインスタンスを取得するみたい。公式のサンプルが間違ってる。
0374nobodyさん2010/04/17(土) 17:15:16ID:qT79J4bw
>>373

URLみたら")"が混じって英語版が開いてた
キャラボット
http://charactorbot.appspot.com/?&locale=ja

こっち。
後ソースの方も

http://sourceforge.jp/projects/charactorbot/svn/view/tags.tar.gz?root=charactorbot&view=tar

で丸々落とせるので、解凍してEclipseにインポートしてGAE/Jのアプリケーションにアップロードするとそのままボットジェネレーターとして動く。カスタマイズして自分用に使うのも一つ。
0375nobodyさん2010/04/17(土) 23:30:14ID:???
>>374

ありがとうございます。
早速試してみます。

自力でちょっと調べまして、Java じゃなくて Ruby/Sinatra なんですが、以下のソースで Smart.fm はクリアできました。

require 'rubygems'
require 'sinatra'
require 'oauth'

enable :sessions

get '/twitter' do
consumer = OAuth::Consumer.new('内緒', '内緒', { :site => 'http://twitter.com', :request_token_path => '/oauth/request_token' })
request_token = consumer.get_request_token # => ここで 401 Unauthorized 発生。
session[:request_token] = request_token
puts request_token.authorize_url
end

get '/smartfm' do
consumer = OAuth::Consumer.new('内緒', '内緒', { :site => 'http://api.smart.fm', :request_token_path => '/oauth/request_token' })
request_token = consumer.get_request_token
session[:request_token] = request_token
puts request_token.authorize_url # => ここで Authoriza url が取得できた。
end

Twitter は We support hmac-sha1 signatures. We do not support the plaintext signature method. と言っており、
Smart.fm は * HMAC-SHA1 (recommended) and PLAINTEXT are supported * と言っています。
キャラボットのソースを読んでもできないようだったら、OAuth::Consumer.new の引数でそのへんを指定する方法を調べてみます。
03763752010/04/18(日) 01:32:47ID:???
わかりました。

処理は正しく、Twitter の OAuth 認証に登録したアプリが無効化されていました。
新しいアプリをもう一つ登録し、そちらで試したらあっさり動きました。
無効化されたアプリを再度有効化するには api@twitter.com にメールするみたい。

以下、Twitter から届いていたメール。

> This is a notice that your OAuth token for あんたのアプリケーション has
> been suspended from interacting with the Twitter API.
>
> Please make sure that your application follows Twitter's policies, including
> the Twitter rules (http://help.twitter.com/forums/26257/entries/18311),
> the API rules (http://twitter.jp/apirules), and the automation rules
> (http://help.twitter.com/forums/10711/entries/76915).
>
> To request for your token to be re-enabled, please write to api@twitter.com

Status: 401 Unauthorized

<?xml version="1.0" encoding="UTF-8"?>
<hash>
 <request>/oauth/request_token</request>
 <error>Invalid / suspended application</error>
</hash>

というレスポンス通り、suspended application だったわけで。
お恥ずかしい限りです。
03773752010/04/18(日) 01:41:19ID:???
>>373

教えていただいたあたりのソースは GAE 上で永続化した Access token を読み出して
Twitter クラスのインスタンスを生成する処理です。
それ以前に今回つまっていた Request token の生成をCharactorbotServiceImpl.java の 529 行目あたりで行っています。

public String getAuthorizationURL(String consumerKey, String consumerSecret) {
  if(consumerKey == null || consumerSecret == null) throw new IllegalArgumentException("null is not allowed.");
  checkLogin();
★  Twitter twitter = new TwitterFactory().getInstance();
★  twitter.setOAuthConsumer(consumerKey.trim(), consumerSecret.trim());
  try {
★    RequestToken requestToken = twitter.getOAuthRequestToken();
    ConsumerKeyAndSecret key = new ConsumerKeyAndSecret();
    key.consumerKey = consumerKey;
    key.consumerSecret = consumerSecret;
    mapRequestTaken.put(key, requestToken);
    return requestToken.getAuthorizationURL();
  } catch (TwitterException e) {
    e.printStackTrace();
    return null;
  }
}

★をつけたところがポイントで、このへんの処理はオフィシャルのサンプルと同じです。
したがって、オフィシャルのサンプルは間違っていません。
長々とスレ汚しすみませんでした・・・。
0378nobodyさん2010/04/19(月) 12:42:00ID:ex/sLZjj
>>372
お前のような奴が一番ウザイ
出来もしない奴が出てくるなっての
半年ROMってろバk
0379followjp2010/04/19(月) 12:46:29ID:NMrEK+fA
twitterで現在何の話が話題かわかるサイト紹介します。
http://followjp.com
0380nobodyさん2010/04/19(月) 17:45:33ID:???
すごくスパムっぽい紹介ですね。。
0381nobodyさん2010/04/26(月) 03:27:30ID:???
>Twitter APIのBASIC認証は2010年6月に廃止予定
0382nobodyさん2010/04/26(月) 14:05:08ID:???
>>381
なんか、ようやく盛り上がってきたw
MyBotたちは対応済みだけどiPhoneアプリが気になるな
0383nobodyさん2010/04/26(月) 15:04:58ID:???
いい加減対応しないととは思いつつ発言辞書追加とか機能追加の方にかまけてしまってたからまあ5月中には対応しとこうかねえ。
一応クライアント名明示できるし。
0384nobodyさん2010/04/27(火) 00:57:09ID:???
6月にdeprecatedという話は前から聞いてたけど、
使えなくなる(shutting off)とは思わなかった。
あとOAuthは突然suspendされた人が出たという噂も聞いたので尻込みしてた。

OAuth対応はライブラリ使えばそんなに難しくないけど
全部のbotのプログラム書き換えるのは面倒だなぁ。
0385nobodyさん2010/04/27(火) 14:19:20ID:???
とりあえずOAuth認証の部分だけ作って他はあとでやろう、って思ってたら
認証作った翌朝にsuspendされた、どうしろというのだ
0386nobodyさん2010/04/27(火) 15:06:06ID:???
suspendってどういう風に?通知がきたの?
0387nobodyさん2010/04/27(火) 23:18:36ID:???
Application suspension notice ってタイトルのメールが来て
twitterの設定画面見たらアプリケーションの説明の所にサスペンドって出てた
0388nobodyさん2010/04/28(水) 01:06:55ID:???
初めにつくったやつsuspendされたけど、
アプリ説明部分が意味のない英文ってかa30文字だったのがまずかったみたい

二代目は説明箇所を一応意味のある日本語にして、短めだったアプリ名称を念のため伸ばした。
今のところsuspendされてないよ。
0389nobodyさん2010/04/28(水) 08:44:33ID:???
>>388
ちょっと説明文直してくるわ
0390nobodyさん2010/04/28(水) 09:41:47ID:???
しかしそんだけで無効化されてたらbotどころかクライアントやサービスも下手にやれんなー。
0391nobodyさん2010/04/28(水) 15:35:06ID:???
まともに名前も説明も付けられない程度の下手加減ならやるなってことだろ
0392nobodyさん2010/04/30(金) 02:00:57ID:???
某所のコピペだけどすまん聞いてください

こちら
http://ko-lab.net/twitter/google-app-enginegae%E3%81%A7cron%E5%8B%95%E3%81%8B%E3%81%99%E3%82%84%E3%82%8A%E6%96%B9%E3%82%92%E3%82%86%E3%81%A8%E3%82%8A%E5%90%91%E3%81%91%E3%81%AB%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E3%81%BF/
を参考にGAEcronを設定してているのですが、12.おまけ の1アプリでいくつかのcronが動かなくて困っております。

「web.xml を開いて以下のように書き換えて適当な箇所に追加する」ソースは、

-略-
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>* 伏*</servlet-name>
<servlet-class>*伏*.* 伏*Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet- name>*伏*</servlet-name>
<url-pattern>/*伏*</url- pattern>
</servlet-mapping>
//ここ
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>

// ここ の部分に挿入すればいいのでしょうか?それともまったく見当違いでしょうか?
1アプリにcron1つだと問題なく動いていますが、3つほど入れると全部 Failedで動きませんでした。
どうかご教示お願い致します。
0393nobodyさん2010/04/30(金) 22:51:16ID:???
>>392
場所はそこでいいと思うが、問題はそこじゃない
パッケージ下にクラスを作る の意味が分からないならググって理解しろ
分からないならやめとけ
0394nobodyさん2010/04/30(金) 23:59:20ID:???
>>393
パッケージ下=同パッケージ内という発想しかなかったから、もう少し勉強してきます
ありがとう
03953932010/05/01(土) 00:43:59ID:???
>>394
パッケージとクラスの意味は理解してるのか
<servlet-class>【*伏*】.* 伏*Servlet</servlet-class>
↑左の部分まで書き換えてないか?
そこはパッケージ名のままにしておかないと動かないよ
0396nobodyさん2010/05/01(土) 05:42:06ID:???
投稿成功してんのに403 Forbiddenとか出るの勘弁して欲しい。
0397nobodyさん2010/05/01(土) 16:07:12ID:???
夜とかEchofonから投稿しても同じような感じだからAPIが重すぎて腐ってるんだと思う
0398nobodyさん2010/05/02(日) 00:02:12ID:???
キャラクターbotって結構多いけど出来がいいのってどんなのあるんだろうか。
ランダムトークとリプライ反応さえあればあとは辞書データの工夫のが重要になってきそうだけど。
0399nobodyさん2010/05/02(日) 23:40:22ID:???
>>395
ありがとう
その左の部分は大丈夫だった
CronJobに、作成した数(2つ)のステータスが出るんだが、on time Failed と 数字secs late Failed になって動いてないみたいで…
見本と照らし合わせながら慎重に<servlet-name>や<url-pattern>を変えてみたけど動かないな
GAEはもともと不安定なんだろうか
0400nobodyさん2010/05/03(月) 08:34:25ID:???
最近GAE不安定すぎてどうにもならないわ。
0401nobodyさん2010/05/03(月) 20:31:26ID:Gh0qmOKb
>>400

たぶん、それはGAEが不安定じゃなくてTwitterの方が不安定なんだと思う。
GAEで他のサービスもやってるが、そっちは安定そのもの。

30秒のタイムアウト。
TaskQueueにスタックしてるなら10秒のタイムアウト。
twitterが遅いとそっちがURLフェッチできずに効いてくる。

タイム制限の中にURLフェッチの処理がしっかり入れば大丈夫だから、
URLにアクセスする処理をTaskQueueに分散して、
そのスレッドの中で一つしかアクセスしないようにする。

さらに一個失敗しても大丈夫なようにしておけば、意外と失敗しない。

http://sourceforge.jp/projects/charactorbot/devel/

ここのやり方が結構秀逸。
ランダムポスト・私信返信・ポスト解析・フォロー返し
といろいろやってるけど、普段は一度しかアクセスしてない。

最新のソース、ダウンロードしてみるといいかも。
0402nobodyさん2010/05/03(月) 21:45:20ID:???
今頃twitterって時代遅れもいいとこ
0403nobodyさん2010/05/03(月) 21:52:12ID:???
>>401
CronでFailed出る時はCron自体動かなかったのかと思った。
あと、タイムアウトって8秒じゃなかったっけ
0404nobodyさん2010/05/03(月) 23:31:20ID:???
エラーログ見てるとこの時間帯はAPIコールのタイムアウト出まくりだしなー。
oAuthだけじゃなく色々増えるっぽいけどサーバがユーザの増加に追いついてないな。
0405nobodyさん2010/05/04(火) 02:02:03ID:+1kjpDTi
>>403

cronでFailでるのは叩いてるそのリクエストが遅いから。

30秒の制限以内におわっているか、次のcronにかぶってないか、
リクエストのapi_msとcpu_api_msとかをログで見てみると良い。
数秒かかるようなら警告のマークが出てるはず。

cronで直接叩かずに、cronは開始時間だけ取っておいて、
すぐTaskQueueに詰めてすぐ終了すると、失敗少ない。

あと、失敗時のリトライもTaskQueueに詰めれば確実。

あと数秒かかってるようならappstatsを入れて
どのメソッドとどのAPIコールにどれだけ時間がかかってるか確認すると良い。
やり方は、GAE/Jならの4番目。
http://d.hatena.ne.jp/itaosan/20100421


とは言えリトライしててもTwitterが落ちまくってるとすごく時間かかるけど。
0406nobodyさん2010/05/04(火) 02:56:11ID:???
GAE上のbotの話と、どっかのcron不可サーバに置いたbotに
GAEからhttp叩いて着火するいわゆるweb cronの話が混ざってるようにも見える
0407nobodyさん2010/05/04(火) 02:59:53ID:???
書き忘れた
後者はGAE行きのレスポンスをさっさと吐いて標準出力をクローズすれば
twitterが重かろうと関係なくGAE側は正常終了するはず
0408nobodyさん2010/05/04(火) 09:35:22ID:QLS4fdDM
oauth対応みんなどうする???
0409nobodyさん2010/05/04(火) 13:53:46ID:???
>>408
いま、一所懸命やっとるがな。
0410nobodyさん2010/05/04(火) 17:10:28ID:???
対応済み
意外に楽だった

どれだけのボットがいなくなるかには興味がある
0411nobodyさん2010/05/04(火) 17:41:57ID:???
職業プログラマにとっては楽なことだけど
サンデープログラマにとっては初めてぶち当たる大きな壁になるだろうなこれ
0412nobodyさん2010/05/05(水) 01:51:31ID:???
まあちょっと改造するとかの人はむしろ対応して配布されたのや
対応した後のbotサービス使うだろうよ。
俺もまだやってないけど作ったばっかのbotの機能の方を先になんとかしたいところ。
0413nobodyさん2010/05/05(水) 10:40:35ID:???
質問させていただきます

http://pha22.net/twitterbot/からいただいたver.2.03のreply_pattern.phpの編集なんですが
TLに反応して@を返すというものなんですが・・・
http://d.hatena.ne.jp/bardothodol/20090930#p1のサイトのものをお借りしてコピペしたのですが反応してくれません
他の動作は確認できました

修正方法や雛形を教えてください><
0414nobodyさん2010/05/05(水) 12:17:05ID:???
具体的にどこを改造してどう動かないのかも説明しないで答え返せるほどテレパシー能力持ってないよ。
0415nobodyさん2010/05/05(水) 12:30:43ID:???
$filename = "./tmp/last.dat";

$filename = "./log.dat";
に変更しただけですが駄目ですか?><
0416nobodyさん2010/05/05(水) 13:08:28ID:???
他の動作はできたってのは反応以外は動くって解釈していいのかね。
変更箇所が$filenameだけなら
$username = "";
$password = "";
変えてなきゃ動くわけもないので初心者が言うとき何をしたかはしょらずに正確に書いて欲しい。
まあファイルの文字コード違うとかそういうのじゃないの。
0417nobodyさん2010/05/05(水) 13:09:11ID:???
あ、IDとパス書けって意味ではないよ。
変更箇所をすべて言わないとわかんないってことで。
0418nobodyさん2010/05/05(水) 13:20:53ID:???
>>416
はいそうです
$filename = "./tmp/last.dat";
ここ以外は弄ってません

文字コードと改行は指定されたとおりにしました
COBOLしかできない痴呆なので詳しくお願いします><
0419nobodyさん2010/05/05(水) 14:05:11ID:???
まさかと思ったが
$username = "";
$password = "";
を指定してないからじゃないかそれ。
プログラムやってんならその行見て不審に思わなかったのか。
■ このスレッドは過去ログ倉庫に格納されています