TWITTER API 1.1 で何が変わったのか (仮 )
API 研究家 辻村 浩 (Hiroshi TSUJIMURA)
概要自己紹介
API 1.1 登場までの流れ API 1.1 で何が変わったのか API 1.1 で廃止された API API 1.1 で追加された API エンドポイントが変更された API各種クライアントの API 1.1 対応状況
まとめ
201
3/0
5/1
8
2
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
注意 : この発表ではTwitter の Display Requirements の話はしません
自己紹介 2007年 4月 5日、 Twitter クライアント Chirrup の最初の版を公開
2007年 4月 25日に「 Twitter API 仕様書 日本語訳」の最初の版を公開
2007年 10月、「 Twitter! -Twitter API ガイドブック -」 (九天社 )を上梓 http://9-ten.com/bookdata/1944.php
2009年 12月 5日、第 1回 Twitter研究会にて発表 Twitter の API の変遷
http://www.slideshare.net/tsupo/twitter-api-2650912 2010年 4月、「 Twitter API ガイドブック」 (ワークスコーポレーション )を上梓 http://www.wgn.co.jp/store/dat/3205/
2010年 7月、Web Site Expert #31 (技術評論社)に「 Twitterで 位置情報をつぶやく」を寄稿
http://gihyo.jp/magazine/WSE/archive/2010/vol31 2010年 8 月、「 Twitter API 仕様書 日本語訳 第五十版」を公開
https://github.com/tsupo/Twitter-API-Specification--written-in-Japanese-/blob/master/twitterAPI.txt
2011年 3月、言語処理学会第 17回年次大会 で Twitter に関するパネルディスカッションに参加。 Streaming API ネタで発表
201
3/0
5/1
8
3
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
API 1.1 登場までの流れ(1/6)
2008年 11月、 OAuth 認証が試験的に導入される 2009年 2月、 OAuth 認証が正式版になる 2009年 4月、いままで非公式だったハッシュタグが公式化される
2009年 5月、 Streaming API が登場 2009年 6月 11日、 OAuth 1.0 から OAuth 1.0a へ移行
2009年 6月 13日、 status ID が signed long で扱える範囲を超える
2009年 8月、いわゆる「公式リツイート」機能が登場
2009年 9月、 home_timeline 登場
201
3/0
5/1
8
4
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
API 1.1 登場までの流れ(2/6)
2009年 11月、 list 機能登場 2010年 1月、 REST API のエンドポイントに API の版数を明示した
http://api.twitter.com/1/で始まる形式のものが追加された
2010年 2月、 Trends 関連の API が公開 2010年 3月、 Geo 関連の API が公開 2010年 4月、 Streaming API に User Streams を追加
2010年 8月 31日、 BASIC 認証版の REST API は廃止。 OAuth 認証に一本化 (当初の予定では 8月 16日 )
2010年 8月 31日、 Streaming API に Site Streams を追加
201
3/0
5/1
8
5
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
API 1.1 登場までの流れ(3/6)
2011年 6月 30日、 OAuth 認証でアプリケーションに許可される権限が (1) 従来の権限 (read, write, ダイレクトメッセージ 関係の APIの実行、すべて OK) (2) 制限された権限 (read, write のみ。ダイレクト メッセージ関係の APIの実行は不可 )の 2 種類になった。デフォルトの権限は (2) の方。(1) の権限が必要な場合は、改めて申請しないといけないようになった。なお、 xAuth では (2) の権限しか取得できなくなった。
201
3/0
5/1
8
6
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
API 1.1 登場までの流れ(4/6)
2012年 3 月下旬、これまで xAuth を許可されていたクライアントが一斉に未許可の状態にリセットされた。 xAuth が必要な場合は、改めて Twitter 社と交渉する必要がある。 xAuth は簡単には許可されなくなった
2012年 9月 5日、 Twitter API 1.1 リリース 2012年 10月 12日、
http://twitter.com/statuses/home_timeline.jsonのような従来のエンドポイントが使えなくなった。以降、 APIの版数を含むエンドポイントの使用が必須になるhttps://api.twitter.com/1/statuses/home_timeline.jsonhttps://api.twitter.com/1.1/statuses/home_timeline.json
201
3/0
5/1
8
7
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
API 1.1 登場までの流れ(5/6)
同じ日に、statuses/mentions
が statuses/mentions_timelineに変更された。
さらに、 Search API を除き、 atom 形式のサポートが終了
そして、いつの間にか public_timeline が廃止(2012年 10月の下旬から 2013年 2月上旬のどこか )
2013年 2月 12日、 GET lists/statuses
の実行回数制限が緩和 (15回 /15 分 → 180回 /15分 )
201
3/0
5/1
8
8
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
API 1.1 登場までの流れ(6/6)
2013年 3月 5日、 Twitter API 1.1 への切り替え開始(API 1.0 は 1日のうちの限られた時間帯しか使えなくなる )
2013年 3月 11日、アプリケーション自身を認証する仕組みが実装される。 API としては
https://api.twitter.com/oauth2/tokenhttps://api.twitter.com/oauth2/invalidate_token
の 2 つが追加 (OAuth 2 ベースであることに注意 ) 2013年 5月 7日、 GET statuses/retweeters/ids 追加
2013年 6月 11日、 Twitter API 1.0 完全廃止予定
同じく、 6月 11日に、 Streaming API のBASIC 認証バージョンも廃止 ( ただし、Streaming API に限っては、当分の間、 API 1.0 のエンドポイントも生き残る )
201
3/0
5/1
8
9
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
API 1.1 で何が変わったのかエンドポイントの変更
http から https へ http://twiter.com/ で始まるエンドポイントが廃止 https://api.twitter.com/1.1/で始まるエンドポイントを採用
出力形式が JSON のみになる API の応答を XML で受け取っていたアプリケーションは改修必須
API の実行回数制限の時間の単位が 1時間から15分に
lists 関連の API のエンドポイントが全面改訂 Search API がようやく REST API に合流 PUT系、 DELETE 系 API が POST系に統一された
201
3/0
5/1
8
10
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
OAuth関連のエンドポイントの変更 http でも https でもよかったのが https のみになったただし、
http://api.twitter.com/oauth/access_token だけは、依然として http のままアクセスする (実際に
アクセスできることを確認 )厳密には、
https://api.twitter.com/oauth/access_tokenにも条件さえ満たせばアクセス可能である。 その条件とは xAuth 使用権限があること。権限がないのに
アクセスした場合は 401 Access Denied が返る
201
3/0
5/1
8
11
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
API 1.1 で廃止された API (1/3)
Timelines GET statuses/public_timeline GET statuses/friends_timeline GET statuses/retweeted_by_me GET statuses/retweeted_to_me GET statuses/retweeted_to_user GET statuses/retweeted_by_user
Tweets GET statuses/:id/retweeted_by GET statuses/:id/retweeted_by/ids
201
3/0
5/1
8
12
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
API 1.1 で廃止された API (2/3) Streaming
GET statuses/links GET statuses/retweet
Friends & Followers GET friendships/exists
Users GET statuses/friends GET statuses/followers POST account/end_session POST account/update_location GET blocks/exists GET users/profile_image/:screen_name GET account/totals
201
3/0
5/1
8
13
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
API 1.1 で廃止された API (3/3) Places & Geo
GET geo/nearby_places Trends
GET trends GET trends/current GET trends/daily GET trends/weekly GET trends/location
Help GET help/test
Notification (Delivery Device) POST notifications/follow POST notifications/leave
201
3/0
5/1
8
14
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
API 1.1 で追加された API Tweets
GET statuses/retweeters/ids (2013年 5月 7日追加 )
Friends & Followers GET friendships/no_retweets/ids (2013年 1月 26日追加 )
Lists GET lists/ownerships (2013年 3月 31日追加 )
OAuth POST oauth2/token (2013年 3月 11日追加 )
POST oauth2/invalidate_token (2013年 3月 11日追加 )
201
3/0
5/1
8
15
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
エンドポイントが変更されたAPI (1/2)
Timelines GET statuses/mentions_timeline
Search GET search/tweets
Users GET blocks/list GET blocks/ids
Favorites GET favorites/list
Saved Searches GET saved_searches/list
201
3/0
5/1
8
16
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
エンドポイントが変更されたAPI (2/2)
Trends GET trends/place
Help GET application/rate_limit_status
Lists全部 !!例
POST :user/lists → POST lists/create POST :user/lists/:list_id → POST lists/update GET :user/lists → GET lists/list GET :user/lists/:list_id → GET lists/show DELETE :user/lists/:list_id → POST lists/destroy
201
3/0
5/1
8
17
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
各種 クライアントの API 1.1対応状況詳しいことは
Twitterクライアント&サービス API1.1対応状況リスト https://docs.google.com/spreadsheet/ccc?
key=0ArnMQU9tQoZpdENJTmo5ZlJIbi1JLTJLeGJMVk81TUE
を見てね !
201
3/0
5/1
8
18
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
まとめ API 1.1 になっても改善されなかったこと
依然として PC とモバイルで search API の結果が違う !! モバイルの方が検索結果の件数が少ない
(PC でしか見つからないツイートが多数 )
1.0 廃止後も当分の間は例外的に使えるようにしておくと言っていた
api.twitter.com/1/statuses/oembed.*がすでに使えなくなっている
Twitter 公式クライアントのみ使える非公開 API もあるという噂があるが、真偽不明
Twitter 公式クライアントは API 制限が緩くなっているという噂もあるが、少なくとも Android版や iOS 版の現行バージョンではそれはなさそう(たぶん )
201
3/0
5/1
8
19
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)
おまけ Twitter API 1.1 の現行 API 一覧
https://gist.github.com/tsupo/5597048 Twitter API 1.1 の実行回数制限
https://gist.github.com/tsupo/5597066まとめ記事
結局、 Twitter API 1.1 で何が変わる? 5つのポイント http://www.atmarkit.co.jp/ait/articles/1209/26/news120.html
201
3/0
5/1
8
20
Tw
itter A
PI 1
.1
で何が変わったのか
(仮)