Weitere ähnliche Inhalte
Ähnlich wie 第2.1回Twitter API勉強会 - 検索API (20)
Mehr von Yusuke Yamamoto (20)
第2.1回Twitter API勉強会 - 検索API
- 2. 第2.1回
Twitter API勉強会
#twtr_hack
2011/12/18
Yusuke Yamamoto
- 3. 質問など
#twtr_hack #q
Yusuke Yamamoto
- 4. Twitter API勉強会
• 対象
‣ Twitter APIに興味がある方であればどなたでも
• 目的
‣ 技術情報のシェア / 技術者の交流
• 今回は第2.1回目
Yusuke Yamamoto 4
- 6. 第2.1回Twitter API勉強会
• @yusukey
‣ Twitter の検索API等
• @knj77
‣ Zusaarについて何か
• LT
‣ @tkawa / @mike_neck / @ts_3156 / @sue445 / @imaoca
Yusuke Yamamoto 6
- 7. 今日のタイムテーブル
19:00∼ APIの基本と最新動向について @yusukey
19:40∼ グループに分かれて自己紹介
19:50∼ Zusaarについて何か @knj77
20:20∼ LT
- OAuth Echoについて@tkawa
- GroovyとQuartzとTwitter4Jの甘い生活G @mike_neck
- 認証なしで使えるAPIまとめ @ts_3156
- TDD @sue445
- 放射線を自動計測してTwitterにつぶやくimaocandeの紹介 @imaoca
Yusuke Yamamoto 7
- 11. 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 11
- 12. 検索 API
• プル型
‣ 最近のツイートを検索
• https://twitter.com/#!/search-homeとほぼ同じ機能
Yusuke Yamamoto 12
- 13. REST APIと検索 API
• 2008年にTwitter検索エンジン-Summize社を買収
• 検索APIも技術的にはREST API
• レスポンスのスキーマが異なる!!!
https://dev.twitter.com/docs/api/1/get/search
Yusuke Yamamoto 13
- 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. 検索 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
- 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
- 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/b6l2xlU
user_mention hashtag url
Yusuke Yamamoto 22
- 24. t.co
• t.co: ティコ
• TwitterのURL短縮サービス
‣ 悪質なサイトへの誘導をブロック
‣ リンクのクリックスルー測定
‣ ツイート文字数制限を緩和
The t.co URL Wrapper
https://dev.twitter.com/docs/tco-url-wrapper
Yusuke Yamamoto 24
- 26. t.co FAQ
• t.coバグだらけ!
‣ かなり直ってます
• t.coのクリック数を取得するAPIは?
‣ 現在のところ非公開
• 同じURLでも違うt.coリンクになる
‣ そういう仕様
Yusuke Yamamoto 26
- 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/discussions
Yusuke Yamamoto