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 対応状況
 まとめ
2013/05/18
2
TwitterAPI1.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 仕様書 日本語訳 第五十版」を公開
2013/05/18
3
TwitterAPI1.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 登場
2013/05/18
4
TwitterAPI1.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
2013/05/18
5
TwitterAPI1.1で何が変わったのか(仮)
API 1.1 登場までの流れ
(3/6)
 2011 年 6 月 30 日、 OAuth 認証でアプリケーショ
ンに許可される権限が
(1) 従来の権限 (read, write, ダイレクトメッ
セージ
関係の API の実行、すべて OK)
(2) 制限された権限 (read, write のみ。ダイレ
クト
メッセージ関係の API の実行は不可 )
の 2 種類になった。デフォルトの権限は (2) の方。
(1) の権限が必要な場合は、改めて申請しないとい
けないようになった。
なお、 xAuth では (2) の権限しか取得できなく
なった。
2013/05/18
6
TwitterAPI1.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.json
https://api.twitter.com/1.1
/statuses/home_timeline.json
2013/05/18
7
TwitterAPI1.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 分 )
2013/05/18
8
TwitterAPI1.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/token
https://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 の
2013/05/18
9
TwitterAPI1.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 系に統一され
た
2013/05/18
10
TwitterAPI1.1で何が変わったのか(仮)
OAuth 関連のエンドポイントの変更
 http でも https でもよかったのが https のみに
なった
 ただし、
http://api.twitter.com/oauth/access_token
だけは、依然として http のままアクセスする ( 実際に
アクセスできることを確認 )
 厳密には、
https://api.twitter.com/oauth/access_token
にも条件さえ満たせばアクセス可能である。
 その条件とは xAuth 使用権限があること。権限がないのに
アクセスした場合は 401 Access Denied が返る
2013/05/18
11
TwitterAPI1.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
2013/05/18
12
TwitterAPI1.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
2013/05/18
13
TwitterAPI1.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
2013/05/18
14
TwitterAPI1.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 日追
加 )
2013/05/18
15
TwitterAPI1.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
2013/05/18
16
TwitterAPI1.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
2013/05/18
17
TwitterAPI1.1で何が変わったのか(仮)
各種 クライアントの API 1.1 対
応状況
 詳しいことは
 Twitter クライアント&サービス  API1.1 対応状況リ
スト
 https://docs.google.com/spreadsheet/ccc?
key=0ArnMQU9tQoZpdENJTmo5ZlJIbi1JLTJLeGJMVk81
TUE
を見てね !
2013/05/18
18
TwitterAPI1.1で何が変わったのか(仮)
まとめ
 API 1.1 になっても改善されなかったこと
 依然として PC とモバイルで search API の結果が違
う !!
 モバイルの方が検索結果の件数が少ない
(PC でしか見つからないツイートが多数 )
 1.0 廃止後も当分の間は例外的に使えるようにして
おくと言っていた
api.twitter.com/1/statuses/oembed.*
がすでに使えなくなっている
 Twitter 公式クライアントのみ使える非公開 API
もあるという噂があるが、真偽不明
 Twitter 公式クライアントは API 制限が緩くなっ
ているという噂もあるが、少なくとも Android 版
や iOS 版の現行バージョンではそれはなさそう
2013/05/18
19
TwitterAPI1.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
2013/05/18
20
TwitterAPI1.1で何が変わったのか(仮)

Twitter API 1.1 で何が変わったか (仮) / What changed about Twitter API?

  • 1.
    TWITTER API 1.1で何が変 わったのか ( 仮 ) API 研究家 辻村 浩 (Hiroshi TSUJIMURA)
  • 2.
    概要  自己紹介  API1.1 登場までの流れ  API 1.1 で何が変わったのか  API 1.1 で廃止された API  API 1.1 で追加された API  エンドポイントが変更された API  各種クライアントの API 1.1 対応状況  まとめ 2013/05/18 2 TwitterAPI1.1で何が変わったのか(仮) 注意 : この発表では Twitter の Display Requirements の話はしま せん
  • 3.
    自己紹介  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 仕様書 日本語訳 第五十版」を公開 2013/05/18 3 TwitterAPI1.1で何が変わったのか(仮)
  • 4.
    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 登場 2013/05/18 4 TwitterAPI1.1で何が変わったのか(仮)
  • 5.
    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 2013/05/18 5 TwitterAPI1.1で何が変わったのか(仮)
  • 6.
    API 1.1 登場までの流れ (3/6) 2011 年 6 月 30 日、 OAuth 認証でアプリケーショ ンに許可される権限が (1) 従来の権限 (read, write, ダイレクトメッ セージ 関係の API の実行、すべて OK) (2) 制限された権限 (read, write のみ。ダイレ クト メッセージ関係の API の実行は不可 ) の 2 種類になった。デフォルトの権限は (2) の方。 (1) の権限が必要な場合は、改めて申請しないとい けないようになった。 なお、 xAuth では (2) の権限しか取得できなく なった。 2013/05/18 6 TwitterAPI1.1で何が変わったのか(仮)
  • 7.
    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.json https://api.twitter.com/1.1 /statuses/home_timeline.json 2013/05/18 7 TwitterAPI1.1で何が変わったのか(仮)
  • 8.
    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 分 ) 2013/05/18 8 TwitterAPI1.1で何が変わったのか(仮)
  • 9.
    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/token https://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 の 2013/05/18 9 TwitterAPI1.1で何が変わったのか(仮)
  • 10.
    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 系に統一され た 2013/05/18 10 TwitterAPI1.1で何が変わったのか(仮)
  • 11.
    OAuth 関連のエンドポイントの変更  httpでも https でもよかったのが https のみに なった  ただし、 http://api.twitter.com/oauth/access_token だけは、依然として http のままアクセスする ( 実際に アクセスできることを確認 )  厳密には、 https://api.twitter.com/oauth/access_token にも条件さえ満たせばアクセス可能である。  その条件とは xAuth 使用権限があること。権限がないのに アクセスした場合は 401 Access Denied が返る 2013/05/18 11 TwitterAPI1.1で何が変わったのか(仮)
  • 12.
    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 2013/05/18 12 TwitterAPI1.1で何が変わったのか(仮)
  • 13.
    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 2013/05/18 13 TwitterAPI1.1で何が変わったのか(仮)
  • 14.
    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 2013/05/18 14 TwitterAPI1.1で何が変わったのか(仮)
  • 15.
    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 日追 加 ) 2013/05/18 15 TwitterAPI1.1で何が変わったのか(仮)
  • 16.
    エンドポイントが変更された 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 2013/05/18 16 TwitterAPI1.1で何が変わったのか(仮)
  • 17.
    エンドポイントが変更された 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 2013/05/18 17 TwitterAPI1.1で何が変わったのか(仮)
  • 18.
    各種 クライアントの API1.1 対 応状況  詳しいことは  Twitter クライアント&サービス  API1.1 対応状況リ スト  https://docs.google.com/spreadsheet/ccc? key=0ArnMQU9tQoZpdENJTmo5ZlJIbi1JLTJLeGJMVk81 TUE を見てね ! 2013/05/18 18 TwitterAPI1.1で何が変わったのか(仮)
  • 19.
    まとめ  API 1.1になっても改善されなかったこと  依然として PC とモバイルで search API の結果が違 う !!  モバイルの方が検索結果の件数が少ない (PC でしか見つからないツイートが多数 )  1.0 廃止後も当分の間は例外的に使えるようにして おくと言っていた api.twitter.com/1/statuses/oembed.* がすでに使えなくなっている  Twitter 公式クライアントのみ使える非公開 API もあるという噂があるが、真偽不明  Twitter 公式クライアントは API 制限が緩くなっ ているという噂もあるが、少なくとも Android 版 や iOS 版の現行バージョンではそれはなさそう 2013/05/18 19 TwitterAPI1.1で何が変わったのか(仮)
  • 20.
    おまけ  Twitter API1.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 2013/05/18 20 TwitterAPI1.1で何が変わったのか(仮)