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

【Twitter】 BOT製作支援スレ part2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/01/18(月) 23:18:42ID:wnXKZf+j
前スレ
http://pc11.2ch.net/test/read.cgi/php/1254028559/
0712nobodyさん2010/09/05(日) 16:38:16ID:???
いや、そうなんだけどさ、切り替えてすぐ使えなくなったら、気づくんだろうけど、
古いURLも使える状態から半年近くもたって障害が起こってそのまま古いほうだけ放置とか、わからんよ。

復旧の際に古いのだけ使えなくなったことが書いてあれば、すぐわかったんだろうけど、アレじゃ、わかんないよ。
アイコン以外は今もそのまま使えてるんだから。
0713nobodyさん2010/09/05(日) 18:11:39ID:???
oAuthを使う際にアプリケーションのURLを指定しますが、
このアプリケーションURLとは異なるドメインからtwitterに投稿させたいのですが、
何か方法はありますでしょうか?

具体的には、
mysite.com(登録したアプリケーションURL)と
mysite2.comというドメインがあり、

mysite.comでリクエストトークン取得したり、コールバックURLもこちらのドメイン内のものを指定します。
ただし、twitterに投稿する際には、mysite2ドメインのサーバでの処理が必須になっているため、
mysite2から投稿用のtwitterAPIを利用したいのです。

少し面倒なことをやろうとすると一つのドメイン内で全て処理が完結しない場合もあるかと思いますが
一般的にはどのように対処するのでしょうか。
0714nobodyさん2010/09/05(日) 18:28:21ID:???
半年近くも放置とか、わからんよ。
切り替えてすぐ使えなくなったら、文句垂れるくせに。
0715nobodyさん2010/09/05(日) 19:04:43ID:???
新しいURLでもアイコンエラー出るようになったw
0716nobodyさん2010/09/05(日) 20:18:51ID:???
>>713
トークン、共有するだけでいいんじゃねーの?
07177132010/09/05(日) 20:55:55ID:???
>>716

実際その方法を使っています。

@mysite.comで取得したトークンをDBに入れる
Amysite2.comでDBからトークン取り出してAPI実行

こうしてしまうとAの段階で、
twitterにアプリケーションを登録した際に登録したアプリケーションURLやコールバックURLのドメインと
異なるドメインからAPI実行することになってしまい、上手くいかないんです。
0718nobodyさん2010/09/05(日) 22:46:02ID:???
登録したときのURLって関係あるの?
0719nobodyさん2010/09/06(月) 02:15:04ID:???
application urlとcallback urlのドメインが違うとコールバック出来なかったはず。
0720nobodyさん2010/09/06(月) 04:28:14ID:???
ある条件を満たすとクロスドメイン出来るってどっかに書いてあった
0721nobodyさん2010/09/07(火) 19:55:49ID:???
投稿もブラウザ上からやってんの?
0722nobodyさん2010/09/11(土) 08:24:11ID:???
今週の木曜日、botジェネレータの鯖がダウンしていましたね。
0723nobodyさん2010/09/12(日) 15:25:13ID:???
Zend_Service_TwitterでOAuth認証させたいのですが、リダイレクト無しで実行させる方法はないでしょうか?
殆どのサンプルがリダイレクトさせてからパラメータ類を渡しています。

アプリケーションをクライアント型にしてPINを入力させる方法にすれば行けそうなのですが、サンプルがないので実装がわかりません。
どなたかご存じの方お願いします。
0724nobodyさん2010/09/13(月) 02:53:36ID:???
callback urlにoob
verifyにpinコード入力
0725nobodyさん2010/09/15(水) 17:25:53ID:yaiLgIne
phpではじめてServices/Twitterをつかってスクリプトを書いてみましたが
uncaughtってエラーが出ます

これってツイッターでは普通?
0726nobodyさん2010/09/15(水) 19:43:51ID:???
PHPのエラーじゃね
0727nobodyさん2010/09/16(木) 17:31:54ID:FSSYYQuQ
ぜんぜんPHPのAPI動かないなぁ
0728nobodyさん2010/09/16(木) 18:40:12ID:???
http://www.sdn-project.net/labo/oauth.html
この通りやっとけ
APIのURL古いままだけど
0729nobodyさん2010/09/16(木) 22:05:04ID:???
python-twitterをOAuth対応にするにはどのライブラリ使えばいいんだろ?
0730nobodyさん2010/09/16(木) 23:22:32ID:???
すこし前のレスも読めんのか
0731nobodyさん2010/09/16(木) 23:52:01ID:???
>>730
少し前ってのは>>668あたりのこと?
それpython-twitterじゃないよ
0732nobodyさん2010/09/17(金) 00:04:23ID:???
>>705
今時、GETやPOSTしゃべるのにheader出力もラップするライブラリばかりだから、
Basic認証部分もラップされてるだろ
あえて、Basic認証のライブラリ化を驚く以前にLLなら大概標準でついてないのか?
0733nobodyさん2010/09/17(金) 01:46:33ID:???
>>731
wgetですらリンクのリンク先を見る機能が付いているというのに
07347272010/09/17(金) 09:27:15ID:5afHtIbm
>>728
thx

設置する場所がPHP4なんでまんまは使えませんが
とりあえず現状で動くスクリプトとして参考にさせてもらいます。

動かなくなったスクリプトが大量にネットにありすぎ
0735nobodyさん2010/09/17(金) 10:30:53ID:???
未だにPHP4って・・・
0736nobodyさん2010/09/17(金) 11:08:05ID:???
>>735
レンタルサーバ屋に言ってくれ
0737nobodyさん2010/09/17(金) 11:08:52ID:???
botが@xxxxでダイレクトメッセージもらったときって、
どういう風に調べるの?

1分ごとにダイレクトメッセージ取得して新着があるか
チェックするとか、めんどくさいんですが。

ダイレクトメッセージもらった瞬間に、特定のURL叩いてくれるとうれしいんだけど。
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の文字列を渡すと弾かれる

という理解でいい?
任意精度使えるなら関係ないよね
実際ウチだと問題ないし
■ このスレッドは過去ログ倉庫に格納されています