More Related Content
PDF
第2.1回Twitter API勉強会 - 検索API PDF
Twitter4jハンズオン 5/1 #twtr_hack ODP
TwitterのStreaming APIについて PDF
Twitter API最新事情 - API Meetup Tokyo #1 #apijp PDF
Twitter API1.1 #twtr_hack PDF
PDF
PPTX
What's hot
PPT
appengine活用事例資料@TDDBC札幌2.1 PDF
PDF
広島IT勉強会カレンダー(仮)はRubyを使っています PDF
PDF
PPTX
Spring bootで学ぶ初めてのwebアプリ開発 PDF
PDF
PDF
PPTX
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS PPTX
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみた Similar to 第3回Twitter API勉強会 - ストリーミングAPI #twtr_hack
PDF
PDF
Twitterクライアントがこの先生き残るには #twtr_hack KEY
Twitter クライアント開発のすすめ #twtr_hack PDF
PDF
Dentoo.LT #3 "Party with Twitter" PDF
StreamingAPIを使用したTwitter Bot @waketi の紹介 DOC
PDF
正しいTwitter-likeサービス間連携の提案 KEY
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb) PPTX
PPT
Google App EngineでTwitterアプリを作ろう PDF
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク - PDF
Twitter sphere of #twitter4j #twtr_hack PPT
Python twitterとtkinterのことはじめ PDF
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc. PDF
python-twitterを用いたTwitterデータ収集 PPTX
Fluxflex meetup 2011 in Tokyo PPTX
PPTX
FIWARE Real-Time Media Stream processing using Kurento PDF
第2.1回 ツイッターAPI勉強会 @ts_3156 発表資料 More from Yusuke Yamamoto
PDF
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai PDF
これからはじめるGit、GitHub #stapy PDF
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan PDF
PDF
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche PDF
Java Küche 2016 #JavaKueche PDF
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap... PDF
WebStormから始まる快適Web開発ワークフロー #html5jk PDF
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug PDF
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #... PDF
カジュアルにスレッドダンプ - @yusuke #javacasual PDF
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug PDF
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai PDF
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug PDF
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4 PDF
PDF
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4 PDF
JavaScript時代のJava #kansumiB7 #kansumi PDF
PDF
失敗から学ぶAPI設計 #ccc_h4 #jjug #jjug_ccc JJUG CCC 2013 Spring 第3回Twitter API勉強会 - ストリーミングAPI #twtr_hack
- 1.
- 2.
Twi$er'API
REST'API' '
' '
' '
' '
' '
:' '
API
:'Java,'Objec8ve9C '
API
Streamed'Tweets'
,' '
Java,'Python,'PHP,'Ruby,'Objec8ve9C '
Web API
' Web'Intents
:'Web '
' @Anywhere
:'HTML,'JavaScript'
Yusuke Yamamoto 2
- 3.
- 4.
デモ
$ wget --output-document=---user=*** --password=*** https://
stream.twitter.com/1/statuses/sample.json
Copyright(c) Yusuke Yamamoto All rights reserved.
- 5.
- 6.
再接続アルゴリズム
1. 最初に接続切れを起こした場合
• 即座に再接続を試みる。
2. TCP/IPレベルのネットワークエラーが発生した場合
• 250ミリ秒から始め、最大16秒までエラー毎に250ミリ秒足してい
くなど線形的に待ち時間を増やしていく。
3. HTTPエラー(ステータスコードが201以上)が返った場合
• 10秒から始め、失敗する毎に待ち時間を最大で240秒まで倍ずつ指
数関数的に増やしていく。
• HTTPエラーは認証情報の間違いやプロキシの不具合などアプリ
ケーションの設定に起因する問題の可能性があるのでユーザーへ
通知することも考慮に入れる。
参考: Twitter APIポケットリファレンス P265
https://dev.twitter.com/docs/streaming-api/concepts#connecting
Copyright(c) Yusuke Yamamoto All rights reserved.
- 7.
ストリーミングAPIの種類
• Streamed Tweets
• パブリックタイムラインを取得
• User Stream
• 単一ユーザーのタイムライン、イベントを取得
• Site Stream
• 複数ユーザーのタイムライン、イベントを取得
Copyright(c) Yusuke Yamamoto All rights reserved.
- 8.
- 9.
- 10.
- 11.
sample
• 使いどころ
• ツイート分析
‣ 言語
‣ クライアント
‣ 流行の固有名詞抽出
• 等々
Copyright(c) Yusuke Yamamoto All rights reserved.
- 12.
- 13.
filter
• 指定した条件のツイートを取得
• エンドポイント(POST)
‣ https://stream.twitter.com/1/statuses/filter.json
• パラメータ
‣ 色々(次ページ)
• レスポンス
‣ statusオブジェクトのjson (REST APIと同じ)
Copyright(c) Yusuke Yamamoto All rights reserved.
- 14.
filterのパラメータ
• follow
• 指定したユーザーIDのツイートを取得
follow=1235,5678
• track
• 指定したキーワードを含むツイートを取得
• 1キーワードは60文字まで
• 日本語はトークナイズされない
‣ 日本語ハッシュタグは指定可能
track=%25twtr_hack,%25twtter4j
Copyright(c) Yusuke Yamamoto All rights reserved.
- 15.
filterのパラメータ(続き)
• locations
• 区域を指定してツイートを取得
locations=138.927,35.500,139.932,35.795
南西 北東
139.932,35.795
経度・緯度順なのに注意
138.927,35.500
Copyright(c) Yusuke Yamamoto All rights reserved.
- 16.
FAQ
• 日本全体をカバーする区域を指定すれば・・
• ヒットするツイートが多すぎる場合はその旨が通知される
{"limit":{"track":1234}}
• 大量の区域を指定したい場合は?
• 要相談
• プロテクトアカウントのツイートは?
• 取得できない。User StreamかSite Streamを利用
Copyright(c) Yusuke Yamamoto All rights reserved.
- 17.
- 18.
User Stream
• エンドポイント(POST)
‣ https://userstream.twitter.com/2/user.json
• レスポンス
‣ statusオブジェクトのjson等
Copyright(c) Yusuke Yamamoto All rights reserved.
- 19.
- 20.
Site Stream
• エンドポイント(POST)
‣ https://sitestream.twitter.com/2b/site.json
• パラメータ
‣ follow: 受信するユーザーIDをカンマ区切りで指定、100人まで
follow=1234,5678,91023,45324....
• レスポンス
‣ statusオブジェクトのjson等
Copyright(c) Yusuke Yamamoto All rights reserved.
- 21.
- 22.
コントロールストリーム
• Site Stream接続時にコントロール用エンドポ
イントが返る
{"control": {
"control_uri":"/2b/site/c/1_1_54e345d655ee3e8d"
}}
• RESTでコントロール用エンドポイントを操作
https://sitestream.twitter.com/2b/site/c/1_1_54e345d655ee3e8d"
https://dev.twitter.com/docs/streaming-api/control-streams
Copyright(c) Yusuke Yamamoto All rights reserved.
- 23.
- 24.
- 25.
ベストプラクティス
• とにかく使う
• 参照系はレートリミット回避のためできるかぎりREST
APIよりもStreaming APIを利用
• gzipを使う
• 帯域を節約
• 接続ネットワークを確認
• 3G接続での利用は推奨されない。接続が切られることも
Copyright(c) Yusuke Yamamoto All rights reserved.
- 26.
- 27.