0
Yusuke Yamamoto
第2.1回                  Twitter API勉強会                    #twtr_hack                      2011/12/18Yusuke Yamamoto
質問など                  #twtr_hack #qYusuke Yamamoto
Twitter API勉強会• 対象 ‣   Twitter APIに興味がある方であればどなたでも• 目的 ‣   技術情報のシェア / 技術者の交流• 今回は第2.1回目 Yusuke Yamamoto                   4
Twitter APIハッカソン• Twitter と連携する何かを開発 ‣   Webサービス ‣   デスクトップアプリケーション/ユーティリティ ‣   モバイルアプリ など Yusuke Yamamoto              5
第2.1回Twitter API勉強会• @yusukey ‣   Twitter の検索API等• @knj77 ‣   Zusaarについて何か• LT ‣   @tkawa / @mike_neck / @ts_3156 / @sue44...
今日のタイムテーブル19:00∼ APIの基本と最新動向について @yusukey19:40∼ グループに分かれて自己紹介19:50∼ Zusaarについて何か @knj7720:20∼ LT- OAuth Echoについて@tkawa- Gr...
Twitter API ポケットリファレンス• 好評発売中!           http://amzn.to/twtr-ref Yusuke Yamamoto                     8
第2.1回Twitter API勉強会• 内容 ‣   Twitter APIの検索API ‣   最近のTwitter APIアップデート ‣   t.coリンクの対応方法 Yusuke Yamamoto            9
Twitter の検索APIYusuke Yamamoto
Twi$erAPI  RESTAPI                                                                                                        ...
検索 API• プル型 ‣   最近のツイートを検索• https://twitter.com/#!/search-homeとほぼ同じ機能  Yusuke Yamamoto                      12
REST APIと検索 API• 2008年にTwitter検索エンジン-Summize社を買収• 検索APIも技術的にはREST API• レスポンスのスキーマが異なる!!! https://dev.twitter.com/docs/api/...
検索 APIの呼び出し• エンドポイント(GET)‣   http://search.twitter.com/search.json?q=****• qパラメータ    q : 検索クエリ    ・ #twtr_hackを含むツイート    q...
検索 APIのレスポンス{"completed_in": 0.055442, "max_id": 38516581864718336,"max_id_str": "38516581864718336", "next_page": "?page=...
期間を絞る・sinceオペレータ : 指定した日(UTC)以降のツイートq=#twtr_hack+since:2011-12-21・untilオペレータ : 指定した日(UTC)以前のツイートq=#twtr_hack+until:2011-12...
ページ処理・rpp: 1レスポンス当たりの最大ツイート数(最大100まで指定可)q=foobar&rpp=100・page: ページ(初期値は1、最大15まで)q=foobar&page=2・max_idパラメータ : 指定したツイートID以前...
ページ処理ベストプラクティスQuery query = new Query(term); query.rpp(100);do { QueryResult qr = twitter.search(query); tweets = qr.getTw...
最近のTwitter APIアップデート Yusuke Yamamoto
ストリーミングAPIの変更・エンドポイントがSSLのみに(9月末∼)一般https://stream.twitter.com/1/ユーザーストリームhttps://userstream.twitter.com/2/サイトストリームhttps:/...
検索APIのスキーマ変更1・ユーザー名の追加(12月からデフォルト)→ to_user_name / from_user_name・in_reply_toの追加(12月からデフォルト)→ 検索結果から会話を追える  Yusuke Yamamot...
検索APIのスキーマ変更2  ・エンティティの追加(include_entities=true を指定) "entities": {  "hashtags": [{"indices": [9, 19], "text": "twitter4j"}...
t.coリンクの対応方法Yusuke Yamamoto
t.co• t.co: ティコ• TwitterのURL短縮サービス‣   悪質なサイトへの誘導をブロック‣   リンクのクリックスルー測定‣   ツイート文字数制限を緩和     The t.co URL Wrapper     https:...
本当にあった怖いt.co• URLのつもりじゃないのにリンクになる‣   仕様です・・• 日本語(マルチバイト)を含むURLが・・・‣   dev.twitter.com またはTwitter development Talkへ報告を• リンク...
t.co FAQ• t.coバグだらけ!‣   かなり直ってます• t.coのクリック数を取得するAPIは?‣   現在のところ非公開• 同じURLでも違うt.coリンクになる‣   そういう仕様     Yusuke Yamamoto    ...
t.co FAQ• bit.lyのリンクをツイートした場合は?‣   expanded_url / display_urlはbit.lyになる。2重展開はしない• include_entities=trueを付け忘れた・・‣   HEADリクエ...
情報源  • Twitter development talk-ja             http://bit.ly/tdt-ja  • @twj_dev            https://twtter.com/twj_dev  • d...
今後の予定12月 検索 API1月 Streaming API2月 Webサイト向け API3月 API 利用規約Yusuke Yamamoto
Upcoming SlideShare
Loading in...5
×

第2.1回Twitter API勉強会 - 検索API

6,257

Published on

Published in: Technology, Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,257
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "第2.1回Twitter API勉強会 - 検索API"

  1. 1. Yusuke Yamamoto
  2. 2. 第2.1回 Twitter API勉強会 #twtr_hack 2011/12/18Yusuke Yamamoto
  3. 3. 質問など #twtr_hack #qYusuke Yamamoto
  4. 4. Twitter API勉強会• 対象 ‣ Twitter APIに興味がある方であればどなたでも• 目的 ‣ 技術情報のシェア / 技術者の交流• 今回は第2.1回目 Yusuke Yamamoto 4
  5. 5. Twitter APIハッカソン• Twitter と連携する何かを開発 ‣ Webサービス ‣ デスクトップアプリケーション/ユーティリティ ‣ モバイルアプリ など Yusuke Yamamoto 5
  6. 6. 第2.1回Twitter API勉強会• @yusukey ‣ Twitter の検索API等• @knj77 ‣ Zusaarについて何か• LT ‣ @tkawa / @mike_neck / @ts_3156 / @sue445 / @imaoca Yusuke Yamamoto 6
  7. 7. 今日のタイムテーブル19:00∼ APIの基本と最新動向について @yusukey19:40∼ グループに分かれて自己紹介19:50∼ Zusaarについて何か @knj7720:20∼ LT- OAuth Echoについて@tkawa- GroovyとQuartzとTwitter4Jの甘い生活G @mike_neck- 認証なしで使えるAPIまとめ @ts_3156- TDD @sue445- 放射線を自動計測してTwitterにつぶやくimaocandeの紹介 @imaoca Yusuke Yamamoto 7
  8. 8. Twitter API ポケットリファレンス• 好評発売中! http://amzn.to/twtr-ref Yusuke Yamamoto 8
  9. 9. 第2.1回Twitter API勉強会• 内容 ‣ Twitter APIの検索API ‣ 最近のTwitter APIアップデート ‣ t.coリンクの対応方法 Yusuke Yamamoto 9
  10. 10. Twitter の検索APIYusuke Yamamoto
  11. 11. Twi$erAPI RESTAPI : API :Java,Objec8ve9C API StreamedTweets , Java,Python,PHP,Ruby,Objec8ve9C Web API WebIntents :Web @Anywhere :HTML,JavaScript Yusuke Yamamoto 11
  12. 12. 検索 API• プル型 ‣ 最近のツイートを検索• https://twitter.com/#!/search-homeとほぼ同じ機能 Yusuke Yamamoto 12
  13. 13. REST APIと検索 API• 2008年にTwitter検索エンジン-Summize社を買収• 検索APIも技術的にはREST API• レスポンスのスキーマが異なる!!! https://dev.twitter.com/docs/api/1/get/search Yusuke Yamamoto 13
  14. 14. 検索 APIの呼び出し• エンドポイント(GET)‣ http://search.twitter.com/search.json?q=****• qパラメータ q : 検索クエリ ・ #twtr_hackを含むツイート q=#twtr_hack ・@yusukeyの#twtr_hackを含むツイート q=#twtr_hack+from:yusukey Yusuke Yamamoto 14
  15. 15. 検索 APIのレスポンス{"completed_in": 0.055442, "max_id": 38516581864718336,"max_id_str": "38516581864718336", "next_page": "?page=2&max_id=38516581864718336&q=twitterapi", "page": 1, "query": "twitterapi", "refresh_url": "?since_id=38516581864718336&q=twitterapi", "results": [ {"created_at": "Fri, 18 Feb 2011 08:49:25 +0000", "from_user": "yusukey", "from_user_id": 10248, "from_user_id_str": "10248", "geo": null, "id": 38520449856045056, "id_str": "38520449856045056", "iso_language_code": "ja", "metadata": {"result_type":"recent"}, "profile_image_url": "http://a1.twimg.com/profile_images/1130177378/b_normal.jpg", "source": "<a href="http://sites.google.com/site/yorufukurou/" rel="nofollow">YoruFukurou</a>", "text": "twitterapi今日は安定してるなー", "to_user_id": null,"to_user_id_str": null}, ...]} Yusuke Yamamoto 15
  16. 16. 期間を絞る・sinceオペレータ : 指定した日(UTC)以降のツイートq=#twtr_hack+since:2011-12-21・untilオペレータ : 指定した日(UTC)以前のツイートq=#twtr_hack+until:2011-12-21 Yusuke Yamamoto 16
  17. 17. ページ処理・rpp: 1レスポンス当たりの最大ツイート数(最大100まで指定可)q=foobar&rpp=100・page: ページ(初期値は1、最大15まで)q=foobar&page=2・max_idパラメータ : 指定したツイートID以前のツイートq=foobar&max_id=149144352336265217 Yusuke Yamamoto 17
  18. 18. ページ処理ベストプラクティスQuery query = new Query(term); query.rpp(100);do { QueryResult qr = twitter.search(query); tweets = qr.getTweets(); for (Tweet tweet : tweets) { // ... } if (tweets.size() != 0) { query.setMaxId(tweets.get(tweets.size() - 1).getId() - 1); }} while (tweets.size() != 0); ・rppは100まで、pageは15まで 最大1500件までしか取れない→max_idパラメータで回せばok Twitter4Jを使った例 Yusuke Yamamoto 18
  19. 19. 最近のTwitter APIアップデート Yusuke Yamamoto
  20. 20. ストリーミングAPIの変更・エンドポイントがSSLのみに(9月末∼)一般https://stream.twitter.com/1/ユーザーストリームhttps://userstream.twitter.com/2/サイトストリームhttps://sitestream.twitter.com/2b/ Yusuke Yamamoto 20
  21. 21. 検索APIのスキーマ変更1・ユーザー名の追加(12月からデフォルト)→ to_user_name / from_user_name・in_reply_toの追加(12月からデフォルト)→ 検索結果から会話を追える Yusuke Yamamoto 21
  22. 22. 検索APIのスキーマ変更2 ・エンティティの追加(include_entities=true を指定) "entities": { "hashtags": [{"indices": [9, 19], "text": "twitter4j"}], "urls": [{ "display_url": "twitter4j.org/ja/api-supportu2026", "expanded_url": "http://twitter4j.org/ja/api-support.html", "indices": [35, 54], "url": "http://t.co/b6l2xlU"}], "user_mentions": [{ "id": 4933401, "id_str": "4933401", "indices": [0, 8], "name": "山本 裕介", "screen_name": "yusukey"}]}, "text": "@yusukey #twitter4j のAPIのページ更新しました http:// t.co/b6l2xlU" @yusukey #twitter4j のAPIのページ更新しました http://t.co/b6l2xlUuser_mention hashtag url Yusuke Yamamoto 22
  23. 23. t.coリンクの対応方法Yusuke Yamamoto
  24. 24. t.co• t.co: ティコ• TwitterのURL短縮サービス‣ 悪質なサイトへの誘導をブロック‣ リンクのクリックスルー測定‣ ツイート文字数制限を緩和 The t.co URL Wrapper https://dev.twitter.com/docs/tco-url-wrapper Yusuke Yamamoto 24
  25. 25. 本当にあった怖いt.co• URLのつもりじゃないのにリンクになる‣ 仕様です・・• 日本語(マルチバイト)を含むURLが・・・‣ dev.twitter.com またはTwitter development Talkへ報告を• リンク先のURLがわからない(クライアント依存) Yusuke Yamamoto 25
  26. 26. t.co FAQ• t.coバグだらけ!‣ かなり直ってます• t.coのクリック数を取得するAPIは?‣ 現在のところ非公開• 同じURLでも違うt.coリンクになる‣ そういう仕様 Yusuke Yamamoto 26
  27. 27. t.co FAQ• bit.lyのリンクをツイートした場合は?‣ expanded_url / display_urlはbit.lyになる。2重展開はしない• include_entities=trueを付け忘れた・・‣ HEADリクエストでリダイレクト先を確認可能 Yusuke Yamamoto 27
  28. 28. 情報源 • Twitter development talk-ja http://bit.ly/tdt-ja • @twj_dev https://twtter.com/twj_dev • dev.twitter.com - Discussions https://dev.twitter.com/discussionsYusuke Yamamoto
  29. 29. 今後の予定12月 検索 API1月 Streaming API2月 Webサイト向け API3月 API 利用規約Yusuke Yamamoto
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×