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

【Twitter】 BOT製作支援スレ part2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/01/18(月) 23:18:42ID:wnXKZf+j
前スレ
http://pc11.2ch.net/test/read.cgi/php/1254028559/
0671nobodyさん2010/08/07(土) 17:48:15ID:???
>>670
client.make_requestの戻り値でGAEのurlfetchのResponse Objectが返されるはずだから
それでエラー返ってないか確認する。

軽くコードを追ってみたけど、このライブラリだとtwitterのレスポンスは確認してないね。
そのライブラリに拘りがなければ、tweepyとか使った方がいいと思う。
0672nobodyさん2010/08/07(土) 19:14:03ID:???
>>671
すみません、実際のところソースの中で何が起こってるか半分も
理解していないのでclient.make_requestの戻り値の取得の仕方を具体的に
教えてもらっていいでしょうか…ソース中のclient.make_requestの後にprint文
仕込むとかそういう感じですか?それともGAEのダッシュボードから確認出来ますか?
0673nobodyさん2010/08/07(土) 20:37:05ID:???
>>672
printすると、ブラウザ向けの出力になるので、ダッシュボードから確認するには
import loggingしておいて、

result = client.make_request(省略)
logging.debug(result)
0674nobodyさん2010/08/08(日) 05:45:13ID:???
>>673
やってみました。
<google.appengine.api.urlfetch._URLFetchResult object at 0x8fc5dc3372a08600>
となっています… twitterのレスポンスを返すライブラリに変更した上で、ということでしたか?
頼り切りで申し訳ありません。
0675nobodyさん2010/08/08(日) 17:05:36ID:???
>>674
それだと分からないので
logging.debug(result.status_code)
logging.debug(result.headers)
logging.debug(result.content)
このあたりで。

正直、こんなことするくらいなら、tweepyとか使った方がいいよ。
0676nobodyさん2010/08/08(日) 18:41:29ID:???
うーん… 先に言ったようにほとんどブラックボックスで扱って
python勉強せずにbotつくろうと思ってたので…ライブラリ変えたら
結構いじらないとだめですよね?

おっしゃったとおり追加すると、401が返ってきてました。

{'status': '401 Unauthorized', 'x-google-cache-control': 'remote-fetch', 'set-cookie'以下略
{"request":"/statuses/update.json","error":"Could not authenticate with OAuth."}

結局このへんのトラブルを解決するのにpythonそのものの知識が必要そうなので
少し勉強したらおすすめしてもらったライブラリに変えるのを検討してみます…
06776762010/08/08(日) 23:59:47ID:???
すみません…上のエラーを受けてキーやトークンの設定を見なおしてみたところ、
何故か以前取った時と変わっていました。リフレッシュなど押していないはずなのですが…
キーやトークンの設定はうまくいった、というの自体が200が返ってきていることを
見ての勘違いでした。ここをミスっていても200が返ってくるのですね。
お騒がせしました。本当に申し訳ありません、ありがとうございました。
0678nobodyさん2010/08/09(月) 23:30:44ID:???
GAE、今日も二重に起動してる…不安定だなぁ
0679nobodyさん2010/08/21(土) 01:04:03ID:???
最近どう?
0680nobodyさん2010/08/21(土) 01:39:33ID:???
まず自分の近況から話せよ
0681nobodyさん2010/08/22(日) 00:59:08ID:???
そういやそろそろBasic認証終わりなんだよな。
0682nobodyさん2010/08/24(火) 18:30:55ID:???
つい最近作ったばかりというBOTでクライアントがAPIになっていると
中の人認証切れること知らないのかなと心配してしまう…
0683nobodyさん2010/08/24(火) 21:49:28ID:???
夏休みの宿題の期限が迫る

たしかBASIC認証には回数制限がどんどんきつくなって入っている段階じゃないか?
0684nobodyさん2010/08/25(水) 00:40:15ID:???
そう。
だから頻繁にアクセスするBasic認証のbotはすでに処理落ちみたいになってるはず。
0685nobodyさん2010/08/28(土) 15:12:54ID:???
APIのURLが新しくなってたらしいが これから必ず変えておくべき?
今のところ問題なく動いてるけど新URLにしたら反応しなくなったから元に戻した
反応しなかったのはたまたまかもしれんが…
参考:http://twbot.blogspot.com/2010/08/apiurl.html
0686nobodyさん2010/08/28(土) 16:28:58ID:???
ホスト名だけ変えて /1 忘れたとかではないの?
0687nobodyさん2010/08/28(土) 22:18:10ID:???
botはxAuthで作ったほうが楽かな?
0688nobodyさん2010/08/29(日) 00:32:46ID:???
一から作るならそーかもしんないけどいずれなくなるものを前提にするよりは
oAuth対応しといたほうがいいとは思うけどな。
0689nobodyさん2010/08/29(日) 00:40:02ID:???
botにxAuthは申請却下されそうな気がする。
0690nobodyさん2010/08/31(火) 23:42:10ID:???
さて、あと20分でBasic認証終わりか。
まあ時差はあんだろうけど。
0691nobodyさん2010/09/01(水) 01:12:13ID:???
Basic認証が廃止になるというのを先程知りました。。。。
明日急いでWebアプリケーションをOAuthに切り替えようと考えていますが、
ネットでざっと見たところ、APIを使うたびにリクエストトークン取りに行ってる実装が多いようでした。

私の現状のアプリでは、Basic認証を使い、ユーザのIDとパスを最初に登録してもらって
あとはユーザがアカウント設定を変えない限りはいつでもアクセスできるようになっています。

OAuthではユーザーの情報を何も持たないのが一般的なやり方なのでしょうか?
あるいはリクエストトークン?を保持しておいて、それ以降使いまわすというやり方も可能ですか?
また、Basic認証→OAuthを実装するにはどのぐらい時間がかかるものでしょうか?

パニくってて文章雑ですがすいませんが宜しくお願いします。
0692nobodyさん2010/09/01(水) 01:14:57ID:???
がんがれw
0693nobodyさん2010/09/01(水) 01:55:18ID:???
リクエストトークンは一回pin取得っていうかコールしたら消滅すっから保持する意味はなし。
保持すんならアクセストークンでいいんじゃないの。
アプリのスレはこっちじゃないけどまあクラアイントスレはユーザ側の話だし話すならこっちか。
0694nobodyさん2010/09/01(水) 09:27:20ID:zNa253MH
Net::Twitter::Liteの認証が全然通らなくなってる・・・
401: Unauthorizedが出る
皆さんはどうですか?
06956872010/09/01(水) 10:24:44ID:???
>>688-689
確かに申請却下されそうなのでやめました。
てかoAuthでもtoken/token secretの期限って無限みたいだから、
それ保存して毎回渡せばいいだけだと気づいた。
ブラウザでログインやるのをはしょりたかっただけです。
0696nobodyさん2010/09/01(水) 10:26:38ID:???
>>691
サーバーサイドの言語は何かな?
たいていはオプソのライブラリそろってるよ。
自分はPHPだけど、これ使ってます
http://twitteroauth.labs.poseurtech.com/connect.php
0697nobodyさん2010/09/02(木) 00:12:23ID:???
BASICで取得は出来ないようだけど、
投稿は出来るみたい。
中途半端過ぎる…
0698nobodyさん2010/09/03(金) 13:00:50ID:???
ウェブサイトでOAuthに対応した場合、
どうやってtwitterユーザーを判別すればいいのですか?
例えば、twitterユーザー名を表示するだけでも、
ウェブアプリ側でそのユーザー名を保持しないといけないわけですが
OAuthでは無理ですよね。
ついっぷるはOAuthのようですが、どうやって実装しているのでしょうか?
0699nobodyさん2010/09/03(金) 13:46:21ID:???
oAuthは大概ライブラリあるし、さがそうぜ
メジャーな言語ならoAuth込みのTwitter関連ライブラリあると思うけど、結構一から自作している人いるのか
0700nobodyさん2010/09/03(金) 17:33:09ID:???
フォームでアカウント&パスワード登録させるとかベタなことやろうとしてるならそりゃ無理だよ。
0701nobodyさん2010/09/03(金) 21:19:25ID:???
>>698
user_timelineを取得してその中のユーザ名を見てる
0702nobodyさん2010/09/04(土) 00:57:16ID:???
横からだが同じことで迷ってた。
API一回消費するけどそれで自分の最新ユーザ情報得られるし初回実行時にやっとくかな。
0703nobodyさん2010/09/04(土) 01:16:22ID:???
users/show が引数なしなら自分出せばいい話なのにめんどくさい話だな。
0704nobodyさん2010/09/04(土) 11:57:15ID:???
oAuthはさすがにライブラリだけどAPI部分は自作
BASIC認証使ってた頃はHTTPから自作だったけど
0705nobodyさん2010/09/04(土) 12:56:42ID:???
Basic認証のライブラリって意味あるのか?w
header文字列作ってくれるだけ?
0706nobodyさん2010/09/05(日) 10:22:42ID:???
「楽ボッツ」って使ってる人いる?どうなん?
ttp://rakubots.kissa.jp/
0707nobodyさん2010/09/05(日) 12:17:53ID:???
ここは製作スレなんでサービスの利用はクラスレの方じゃないかね
0708nobodyさん2010/09/05(日) 12:22:50ID:???
黙れ小僧
0709nobodyさん2010/09/05(日) 13:04:08ID:???
アイコンなおんねーなと思ったら、URLが変更になってたんだな。
アイコン以外は古いURLでも問題ないのに、問題の修正は新しいURLでしか行われなかったのね。
0710nobodyさん2010/09/05(日) 13:49:59ID:AGQD/Sbe
馬鹿には無理
0711nobodyさん2010/09/05(日) 15:45:01ID:???
>>709
公式からの情報くらいチェックしとけよ
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
使い回してません。
■ このスレッドは過去ログ倉庫に格納されています