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

【Twitter】 BOT製作支援スレ part2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/01/18(月) 23:18:42ID:wnXKZf+j
前スレ
http://pc11.2ch.net/test/read.cgi/php/1254028559/
0738nobodyさん2010/09/17(金) 12:01:25ID:???
そもそもxamppのPHPでAPIをテストしてるのって無理ですか?
0739nobodyさん2010/09/17(金) 17:36:36ID:???
>>736
そんなとこ借りてるお前が問題
0740nobodyさん2010/09/17(金) 19:59:43ID:???
それほどでも
0741nobodyさん2010/09/20(月) 02:56:09ID:???
全ツイートを捕獲してるサービスってどうやってんのかな
APIの制限からそんなに頻繁にはquery投げられないはずなんだけど
0742nobodyさん2010/09/20(月) 13:25:27ID:???
複数アカウントで取得しまくって、発言IDで重複を除外して結合、とか。
0743nobodyさん2010/09/20(月) 14:12:22ID:???
OAuthなら350回/時だから、約10.3秒に1回で、じゃあキリよく15秒として。
きっちり時刻合わせをした30台のPCが、0.5秒ずつ時刻をズラして取得したデータを
まとめ役PCに投げて、重複を除外する感じ?
何秒おきで何台あれば漏れがなくなるんだろう。
0744nobodyさん2010/09/20(月) 17:01:24ID:???
世界中のツイートを全部捕獲しているのがそんなんで間に合うわけがない
0745nobodyさん2010/09/20(月) 17:05:54ID:???
2月の時点で秒間600か
すごいな
http://blog.twitter.com/2010/02/measuring-tweets.html
0746nobodyさん2010/09/20(月) 19:18:11ID:???
そんなもんなのか…。
うちのサーバでも余裕で対処できそうだ。う〜ん。
0747nobodyさん2010/09/20(月) 19:49:51ID:???
今はピーク時で秒間1500くらいだよ。平均でも1000はある。
0748nobodyさん2010/09/20(月) 20:10:47ID:???
そんなもんなのか…。
うちのサーバでも余裕で対処できそうだ。う〜ん。
0749nobodyさん2010/09/20(月) 21:48:15ID:???
問題はそれだけのpublic timelineをどうやって読むかだな
複数アカウントしかないのか
0750nobodyさん2010/09/20(月) 22:57:32ID:???
数字はともかく、原理は>>743だな。
1回の取得で200件は取れるんだっけ?
1500件なら8分割で、11秒間隔とすれば
PCとアカウントが88あれば取れるのか。
多少の冗長性を持たせれば100か。
0751nobodyさん2010/09/20(月) 23:11:22ID:???
公式にかけあうともっと簡単にいけそーな気はする。
0752nobodyさん2010/09/20(月) 23:15:11ID:???
専用のAPIなかったっけ?
あと目的が確かならAPIの制限を五桁くらいに上げてもらえるとかあった気が。
0753nobodyさん2010/09/20(月) 23:17:03ID:???
ストリームのAPIあった気がした。
使ったことはないけど。
0754nobodyさん2010/09/21(火) 01:53:52ID:???
>>741
今って必殺のwhitelistは使えないの?
whitelist + user streamでいけないのかな
0755nobodyさん2010/09/22(水) 00:55:43ID:???
ツイッターで大規模不具合 総務省など注意呼びかけ

ミニブログ「ツイッター」で21日夜、大規模な不具合が発生し、
総務省地域力創造グループなどが利用に関する注意を呼びかけている。

ツイッター公式サイトからログインした場合、意図しないリツイートやつぶやきがされる場合がある。
同グループは「サイトの脆弱性を突いた攻撃が多発しています」などとして、
ツイッター公式サイトからのログインを避けるよう指摘している。
http://headlines.yahoo.co.jp/hl?a=20100921-00000619-san-soci
0756nobodyさん2010/09/22(水) 01:01:07ID:???
直ってから呼びかけられても。
0757nobodyさん2010/09/22(水) 01:35:53ID:???
一ヶ月以上前にそのバグ聞いてるのにほったらかしてた奴に言われても、なあ。
0758nobodyさん2010/10/04(月) 00:30:49ID:mV5TXUi/
あまり人がいなさそうだけど質問していいのかな…

最近oAuth認証とやらでtwitterと連携しているWebサイトが多いですが、
ユーザー管理はどのように行っているのでしょうか?

例えば、ついっぷるというサイトを使ってみたところ
twitterページでログインさせるだけでユーザーのマイページを作っているんですよね。

これはaccess_tokenをついっぷる側のDBに保存して、access_tokenとマイページ設定情報などを紐付けてるのでしょうか?
何かしらユーザーに紐付く情報をDBに保存しておかないと、ユーザーごとのマイページ情報を維持できないと思うのですが、
ユーザー登録を行っていないことを考えると
access_tokenぐらいしかユーザーを識別するものが無いと思うのですが、間違ってますか?
0759nobodyさん2010/10/15(金) 12:42:03ID:???
ttp://www.minawari.jp/tokyo
の右側になるみんなのつぶやきって、どうやって取得してるんだろ。
#xxnawari_tokyo がついているもののみをxmlで取得して解析してるんかな。

それだと#xxnawari_tokyoって
書かれたらスパムができまくるよね。
どうやってやるんだろ。
知ってる人いますか?
0760nobodyさん2010/10/15(金) 12:58:06ID:???
そうだねスパムできまくるね
ハッシュタグ検索の結果表示してるだけじゃねーの?
0761nobodyさん2010/10/15(金) 13:11:37ID:???
http://search.twitter.com/search.atom?q=%23minawari_tokyo
0762底辺2010/10/15(金) 22:56:15ID:???
>>760 761
ありがとう!
0763nobodyさん2010/10/16(土) 11:35:16ID:qyIaYYPU
OAUTH認証をしてアクセスキーとアクセスキーシークレットを取得→投稿とやると

Invalid / expired Token

とエラーが出てしまいます。
さっき取得したばかりのアクセスキーでも出てしまうのですが
どうすれば解決できるでしょうか?
0764nobodyさん2010/10/16(土) 11:57:13ID:???
すみません。
少し前進して、今度は

Incorrect signature

と出るようになってしまいました。
0765nobodyさん2010/10/16(土) 14:23:16ID:???
そのエラーは何が出したの?
0766nobodyさん2010/10/16(土) 14:38:24ID:???
ユーザーが登録すると、毎日定時にユーザーのアカウントにお知らせを投稿する
Webアプリを作ろうとしているんですが
ブラウザタイプでは駄目だとわかってクライアントタイプで作っているところです。
ローカルから投稿はできるようになったのですが、今はPINコードを入力して貰うところの書き方を調べています。
0767nobodyさん2010/10/16(土) 17:27:58ID:???
アクセストークンは、ちゃんと毎回取得してる?
0768nobodyさん2010/10/16(土) 17:33:29ID:???
毎回っつーと変だな。
一度もらったPINコードは使い回したりしてないよね。
0769nobodyさん2010/10/16(土) 18:14:08ID:???
やはり大変ですか…。
今日一日費やして進めずに絶望しているところです orz
サイトのデザインを最初に作ってしまっただけに後に引けないという。

202028375-m0HDwIbbWTxq8bc9VnJIuw63kemWwDxZBjssxT6r
アクセストークンをこういう形で取得したいのですが


G52QjGreuw4syQtsrGbk3VtE4YgEM94xxibxcHczcs
こうなってしまいます。
PINを渡しているつもりなんですが、何が悪いんでしょうか?

後二、三日悩んで駄目だったら諦めます。
0770nobodyさん2010/10/16(土) 18:16:21ID:???
>>767
クライアントタイプにすれば最初だけで使い続けられると思ったんですが違うんでしょうか?

>>768
使い回してません。
0771nobodyさん2010/10/17(日) 15:31:57ID:???
どっかからライブラリ拾ってこいよ。
それか、コード晒そうぜ。
0772nobodyさん2010/10/19(火) 11:30:00ID:???
Twitter4Jなら、サンプルコードを見れば自力でクライアント作れるよ。
後はデザインだけの問題。
0773nobodyさん2010/10/21(木) 02:58:59ID:???
便利なライブラリがあるのに、何故使わないのだ
0774nobodyさん2010/10/21(木) 23:56:54ID:???
C#でクライアント作ったときはまともに日本語とおるOAuthライブラリが見つからなかったから、
自分で実装したけど、まぁ、たいしたことなかったよ。
他の言語の実装見ながらやればだいたいできる。

でも、拾ってきたほうが楽なのは間違いない。
0775nobodyさん2010/10/25(月) 23:54:34ID:???
mentions発したユーザをフォローする機能を作りたいんだけど、mention->user->followingを見てfalseならfollowしている。
だけどどうやら、followingに正確な値が入ってない気がする。
検索したら>>194で出てたけど。

followingのユーザにfollow送ったら403が帰ってくるから気持ち悪い。
自分のfollowersを見て、その中に入っているかどうかで調べるしかないんだろうか。

お願いします。
07767752010/10/26(火) 00:04:48ID:???
自己解決。
followingは廃止予定だそうで。

friendships/show
friendships/exists
このどちらかを使えだそうです。お騒がせしました。
0777nobodyさん2010/10/26(火) 00:34:43ID:???
777
0778nobodyさん2010/10/26(火) 11:39:54ID:???
API、変化してるな〜。
0779nobodyさん2010/10/26(火) 17:26:31ID:???
ここで聞いていいかわからないけど
botのIDでログインしていないのに(自分の個人アカでログインしている)
ページを開き直したときとか勝手にbotのアカウントでログインしてる現象が
一昨日くらいから出てるんだけど他にもこういう人いる?
うっかりbotアカで呟いてしまいそうになって困る
0780nobodyさん2010/10/26(火) 17:47:51ID:???
勝手にログインしちゃマズいよな。
ブラウザは何? ちゃんとログアウトしている?
0781nobodyさん2010/10/26(火) 18:04:25ID:???
ブラウザはIE8です。webで使ってるときだけかも。クライアント使っていないので不明。
botでログインしたときログアウトはちゃんとしています。
最初は気のせいかと思ってたけど
例えば診断系をやってツイートしようとすると新しいページが開くけど
それが個人アカではなくbotアカになってしまったりする。
勝手に個人ログアウトbotログインされてる状態。
とりあえず気をつけているけど前からこういうのあったのかな。
0782nobodyさん2010/10/26(火) 19:20:10ID:???
twitter.comのクッキーを調べたら、アカウント名が入っていた。
クッキーをその都度消すか、注意深くログインするか、
別なブラウザ(又はクライアント)を入れて使い分けるか、かな。
0783nobodyさん2010/10/27(水) 10:33:00ID:???
GAE-cronがVer.0.02になったよ
ttp://d.hatena.ne.jp/furyu-tei/20101025/gaecron
0784nobodyさん2010/10/27(水) 23:06:51ID:???
またアイコン不具合だな
0785nobodyさん2010/10/28(木) 00:08:30ID:???
ちなみに、みんなは何の言語+ライブラリで開発してるの?
APIを直叩きしてる人には濡れる。

俺は、php+twitteroauthだな。
http://github.com/abraham/twitteroauth
0786nobodyさん2010/10/28(木) 18:25:52ID:???
Java+Twitter4J。
人が多くいる所ならノウハウも蓄積されるだろうし、困った時には助かるだろうなと。
0787nobodyさん2010/10/28(木) 19:51:07ID:???
>>779
おれはbot垢は火狐で、自アカは黒目でログインするようにしてるわ。
0788nobodyさん2010/10/28(木) 22:36:49ID:???
OAuth以外はRuby標準ライブラリしか使ってない。
0789nobodyさん2010/10/29(金) 17:58:54ID:???
C#,OAuthクライアントから作った。
0790nobodyさん2010/10/29(金) 18:54:17ID:???
鯖がPHP5.2未満だからライブラリ使えなかったお
0791nobodyさん2010/10/29(金) 20:27:36ID:???
>>786>>788->790
使い勝手はどう?
自分で言い出したからまず自分で感想を。

php+twitteroauthはかなりいい感じ。
OAuth用ライブラリと、twitterに特化したライブラリが内包されている。
twitterbotを作りたいなら、OAuth用ライブラリを使う必要がない(twitterに特化したライブラリがラップしてるイメージ)。
メソッドは文字列、パラメータは連想配列で直感的にget/postすることができて、取得もアロー演算子で直感的に(phpにはjsonをデコードする関数がある)。
$mentions[$n]->user->id というふうにいける。
0792nobodyさん2010/10/29(金) 21:46:28ID:IS2CJKz4
Perl+Net::OAuth
つまりAPI自体は直、BASIC認証の頃はソケットでHTTPごとやってた


ボットを作りたいんじゃなくてTwitterAPIを触りたくて始めたからな。
0793nobodyさん2010/10/29(金) 22:41:34ID:???
788だけど、
Ruby + OAuth(gem) + 下のOAuthパッチ(最新ではいらない)を使ってる。
http://d.hatena.ne.jp/shibason/20090802/1249204953

XML用のライブラリ使ってる。戻ってきたXMLに対して次のようにアクセス。
XPathなので比較的楽。
--
Document.new(body).elements.each("*/status") {|item|
 name = item.elements["user/screen_name"].text
 …
}
--

OAuthは通常のHTTP操作と似てるけど、一緒ではないのでだいぶ書き直した。
Ruby使ってる理由は慣れが一番大きい。
ライブラリはよほど便利なのがない限り使わない主義。
あとTwitter APIとは関係ないけど、Nokogiriってライブラリが便利。
逆に困るのは、ライブラリが枯れてないこと。
仕事で作るなら多少面倒でもJavaを使うと思う。
07947902010/10/30(土) 02:38:14ID:???
ライブラリ使えなかったからネットで公開してくれてるコードをtwitterの公式ドキュメントを見ながら改造した。
頭悪いから苦労したお。
使い勝手は普通。
0795nobodyさん2010/11/05(金) 19:40:58ID:???
今日の6時頃くらいからreply先がわからなくなったんだが
一時的なのかそれとも何か変更あったのかな
0796nobodyさん2010/11/05(金) 20:07:28ID:???
「reply先がわからない」ってどういう意味?
0797nobodyさん2010/11/05(金) 20:43:01ID:???
>>795
お昼くらいにフォロワーの方から教えてもらった情報だと
in-reply-toにセットするステータスidが今まではidだったのが
id_strっていう項目に変更になったみたい。
自分のbotも修正して正常にリプライできるようになったよ
0798nobodyさん2010/11/05(金) 22:26:51ID:???
>>796
in_reply_idがなかったことにされてた
>>797
変更してみたら正常になったよ。ありがとう
0799nobodyさん2010/11/06(土) 00:13:31ID:???
えー、なんでそんな変更したんだろう。
0800nobodyさん2010/11/06(土) 00:36:07ID:???
ああ、IDの64bit化か。
ライブラリに頼っている身では、アップデートを待たんとな。
0801nobodyさん2010/11/06(土) 00:48:49ID:???
今のところはJSON以外は変更ないよね?
XMLだとid_strとか見当たらないけど。
0802nobodyさん2010/11/10(水) 00:35:33ID:???
まあいずれ移行すんだろうな。
ていうか今まで数字のみでやってたのを急に変えても困る。
idとかそのままに新しいキー名の方にeとか使えばいいのに。
0803nobodyさん2010/11/10(水) 14:43:36ID:???
え、桁数が大きいだけで数字のみだと思ってたけど違うのか。
0804nobodyさん2010/11/11(木) 11:57:17ID:???
idとかの値は1.98255E+12みたいになってるよ。
id_strにすれば前の数字だけのになる。
0805nobodyさん2010/11/11(木) 11:59:11ID:???
んで、今のところ引APIコールの引数として渡せるのが数字のみのidだから扱いがややこしくなる。
0806nobodyさん2010/11/11(木) 20:57:04ID:???
>>805
良くわからんけど、結局文字列としてget/postするなら、取得した形式が文字列であっても数字であっても関係ないんじゃ?
0807nobodyさん2010/11/11(木) 22:27:46ID:???
>>806
数値じゃなくて数字ね。
0-9の数字じゃないとid受け付けてくれないってこと。
0808nobodyさん2010/11/12(金) 19:53:42ID:???
>>807
idに数字のみが使われている設計自体が悪い(ややこしい)ってこと?
0809nobodyさん2010/11/13(土) 00:58:34ID:???
違うよ。
単に今のとこ数字のみのidしか受け付けないから
APIコール時に受け取ったidの値そのまま使わんほうがええよってだけ。
0810nobodyさん2010/11/13(土) 01:15:13ID:???
>>809
screen_nameとidを混同してるってことはないよね?
ごめん、どうも理解できない。

誰か理解力のない俺向けに翻訳してくれる人・・・
0811nobodyさん2010/11/13(土) 02:04:43ID:???
文字列としてやってくるIDを数値に直すと32bit以上になるから気を付けてね、って事かな。
0812nobodyさん2010/11/14(日) 00:23:35ID:???
この流れがよくわからんので質問

1. idは32bitで表現できない
2. 返値idはHTTPのペイロード上で文字列だけど、JSONでの型は整数
3. 環境によってはオーバーフローして表現できない整数値を(多分暗黙のうちに)浮動小数点値に変換する
4. 3の環境では数値化したidを再度文字列化すると浮動小数点値を表現する文字列になる
5. 引数idは整数値を期待しているので、4の文字列を渡すと弾かれる

という理解でいい?
任意精度使えるなら関係ないよね
実際ウチだと問題ないし
0813nobodyさん2010/11/14(日) 00:49:13ID:???
まだちゃんと調べてはいないけどとりあえず

1)doubleなので表現はできてるみたい
2)返り値のidは整数型じゃなく浮動小数点数型。
3)暗黙の変換じゃなくそのまま
4)うん
5)うん
0814nobodyさん2010/11/14(日) 04:10:29ID:???
そうかJavaScriptは全部浮動小数点値だっけか
まぁTwitter関係ないのが分かったからいいやthx
0815nobodyさん2010/11/14(日) 10:54:34ID:???
OAuthがsuspended applicationになってたんですけどこれ解除するにはメール送らないといけないのでしょうか?
なんて送ればいいんだろう。というか英文で送らないといけないんでしょうか?
0816nobodyさん2010/11/14(日) 11:11:09ID:???
JavaScriptの数値型は、表面的には1つ(64bit倍精度浮動小数)
なんだけど、整数としては2通りある。
1つは論理演算をすると32bitに変換されちゃうのと、
もう1つは浮動小数の仮数部で表現できる53bit。
2^53=9007兆1992億5474万0992まではJavaScriptなら区別できる。
JSON的には整数と実数は区別して、整数は32bitまで?
0817nobodyさん2010/11/14(日) 12:45:46ID:???
>>815
アカウント凍結と同じようなものだから、チケット作ればいいんじゃない?
昔は英語のみだったけど、今は日本語でもいいと思うよ。
http://support.twitter.com/
0818nobodyさん2010/11/14(日) 12:51:37ID:???
自分でも回避する為にぜひ知りたいけど、
何をするとサスペンドされちゃうの?
0819nobodyさん2010/11/14(日) 13:13:07ID:???
>>817
何度やってもなぜかチケット送信エラーになる…
>>818
自分の場合特に何もしてなかったのに急に。他にも同じようなbotを動かしているんだけど
そっちは何も問題なく動いてる
0820nobodyさん2010/11/14(日) 14:52:21ID:???
今更読み返したら812と814が酷過ぎるのでセルフツッコミ
>>812
JSONではnumberの解釈は実装依存
>>814
少なくともECMAScriptではNumberは64bitのIEEE 754だしJavaScriptは実装次第だろうけど、そもそもJSONとは別物なので名前出すのが間違い

スレ汚しゴメン
0821nobodyさん2010/11/14(日) 17:00:33ID:???
要はid_str使えば良いって話でしょ。
わざわざ考えるのも面倒だし。

XMLにはid_strないんだっけ。個人的に、ライブラリから考えてjsonしか候補にないけど。
0822nobodyさん2010/11/14(日) 17:26:06ID:???
>>820
JSONの最初の2文字を考えると、JavaScriptの名前を出すのが間違いとも思えない。
0823nobodyさん2010/11/15(月) 09:29:39ID:???
>>816
そりゃヘリクツだろうと思ったら、parseInt()がそこまで返すのか。
parseInt(9007199254740992) は 9007199254740992 だけど、
parseInt(9007199254740993) は 9007199254740992 に丸められるな。
0824nobodyさん2010/11/15(月) 10:44:34ID:2hg3ZnmL
このサイトを参考にボットを作ったんですけど
ttp://techblog.ecstudio.jp/tech-tips/autotweetcollector.html

ボットが自身のツイートを拾い続けて収集がつきません。
ボットが自分のツイートを拾わないようにするにはどうすればいいでしょうか?
0825nobodyさん2010/11/15(月) 10:56:08ID:???
自分のid保存しといて $x['user']['id_str'] == $myid とかの条件ではじけば。
0826nobodyさん2010/11/15(月) 10:58:06ID:???
ていうかこれ、最近ちょくちょく見る無差別非公式RT botじゃねえか。
勘弁してくれよ。なんでいちいち@付けてんだ。
0827nobodyさん2010/11/15(月) 11:29:14ID:???
ああ、こんな作り方とか出てるから増えたのかな
無差別RTマジで止めてほしいよ
精度低いのばっかりで、ネタツイートとかまで拡散されてうんざり
0828nobodyさん2010/11/15(月) 11:55:42ID:???
発言の収集自体は勝手にすりゃいいがこっちのTL汚染すんのはまじで勘弁だわ。
ドラマのもやしもんbotみたいな日常的なワードに反応しまくるのとか特に最悪だし。
08298242010/11/15(月) 13:09:25ID:???
なんか評判悪いみたいですね…。
一応非公開で使っています。

>>825
ありがとうございます。
これをどこに突っ込めばいいんですか?(Yahoo!Pipesにですよね?)
初心者すぎて申し訳ないです。
0830nobodyさん2010/11/15(月) 17:11:47ID:???
非公開にしてんなら検索で拾われないから重複はしないはずだが。
08318242010/11/15(月) 22:54:07ID:???
言葉が足りませんでした。
一度公開したら重複したので止めてるんです。
その競技をやってる人には有益なんでちゃんと動けば公開したいと考えてます。
検索するキーワードは単キーワードなので迷惑はかからないと思うんですけど…。
0832nobodyさん2010/11/16(火) 00:35:00ID:???
情報収集なら公式RT、ネタ系ならbotをフォローしている人に限定すればいい。
0833nobodyさん2010/11/16(火) 02:26:58ID:???
やり方はわかるけどこういう公共の場では悪用する人まで見てるからなあ。botつうよりマクロだしあれ。
まさに>>824のURL丸写しにした無差別に非公式RT飛ばしてるbot結構見てるからちょっとね。
正直そういうキーワード検索して公開でつぶやくってのは引用元に断りなしだしあまり望ましくはないよ。
0834nobodyさん2010/11/16(火) 05:43:42ID:???
俺はそういうの見かけるたびに遠慮なくSPAM報告してる。
0835nobodyさん2010/11/16(火) 09:14:23ID:???
ていうか、有用な情報のなんてほとんどないのが現状
正直何故このキーワード?っていうものばかり…
08368242010/11/16(火) 11:16:26ID:???
あまり推奨されないようなので取り下げますね。
皆さんの意見参考になりました。ありがとうございました。
0837nobodyさん2010/11/16(火) 13:14:48ID:???
そういうのは非公開のままで興味ある人だけフォローしてください
宣伝でない限りはフォロー返ししますんでっていうのでいいと思うんだけどね。
0838nobodyさん2010/11/27(土) 11:33:31ID:EHyg0A+A
バカが利用するのは仕方ないとして
バカが提供する側に回るとロクなことにならない

アクセス稼ぐためにゴミみたいな情報垂れ流すなしね
■ このスレッドは過去ログ倉庫に格納されています