• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
第2.1回Twitter API勉強会 - 検索API
 

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

on

  • 6,350 views

 

Statistics

Views

Total Views
6,350
Views on SlideShare
6,329
Embed Views
21

Actions

Likes
4
Downloads
18
Comments
0

6 Embeds 21

http://a0.twimg.com 12
https://si0.twimg.com 3
https://twitter.com 3
http://twicli.neocat.jp 1
http://www.takeoverapp.com 1
http://takeoverapp.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • 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 / @sue445 / @imaoca Yusuke Yamamoto 6
    • 今日のタイムテーブル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
    • 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 :Java,Objec8ve9C API StreamedTweets , Java,Python,PHP,Ruby,Objec8ve9C Web API WebIntents :Web @Anywhere :HTML,JavaScript Yusuke Yamamoto 11
    • 検索 API• プル型 ‣ 最近のツイートを検索• https://twitter.com/#!/search-homeとほぼ同じ機能 Yusuke Yamamoto 12
    • REST APIと検索 API• 2008年にTwitter検索エンジン-Summize社を買収• 検索APIも技術的にはREST API• レスポンスのスキーマが異なる!!! https://dev.twitter.com/docs/api/1/get/search Yusuke Yamamoto 13
    • 検索 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
    • 検索 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
    • 期間を絞る・sinceオペレータ : 指定した日(UTC)以降のツイートq=#twtr_hack+since:2011-12-21・untilオペレータ : 指定した日(UTC)以前のツイートq=#twtr_hack+until:2011-12-21 Yusuke Yamamoto 16
    • ページ処理・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
    • ページ処理ベストプラクティス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
    • 最近のTwitter APIアップデート Yusuke Yamamoto
    • ストリーミングAPIの変更・エンドポイントがSSLのみに(9月末∼)一般https://stream.twitter.com/1/ユーザーストリームhttps://userstream.twitter.com/2/サイトストリームhttps://sitestream.twitter.com/2b/ Yusuke Yamamoto 20
    • 検索APIのスキーマ変更1・ユーザー名の追加(12月からデフォルト)→ to_user_name / from_user_name・in_reply_toの追加(12月からデフォルト)→ 検索結果から会話を追える Yusuke Yamamoto 21
    • 検索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
    • t.coリンクの対応方法Yusuke Yamamoto
    • t.co• t.co: ティコ• TwitterのURL短縮サービス‣ 悪質なサイトへの誘導をブロック‣ リンクのクリックスルー測定‣ ツイート文字数制限を緩和 The t.co URL Wrapper https://dev.twitter.com/docs/tco-url-wrapper Yusuke Yamamoto 24
    • 本当にあった怖いt.co• URLのつもりじゃないのにリンクになる‣ 仕様です・・• 日本語(マルチバイト)を含むURLが・・・‣ dev.twitter.com またはTwitter development Talkへ報告を• リンク先のURLがわからない(クライアント依存) Yusuke Yamamoto 25
    • t.co FAQ• t.coバグだらけ!‣ かなり直ってます• t.coのクリック数を取得するAPIは?‣ 現在のところ非公開• 同じURLでも違うt.coリンクになる‣ そういう仕様 Yusuke Yamamoto 26
    • t.co FAQ• bit.lyのリンクをツイートした場合は?‣ expanded_url / display_urlはbit.lyになる。2重展開はしない• include_entities=trueを付け忘れた・・‣ HEADリクエストでリダイレクト先を確認可能 Yusuke Yamamoto 27
    • 情報源 • 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
    • 今後の予定12月 検索 API1月 Streaming API2月 Webサイト向け API3月 API 利用規約Yusuke Yamamoto