背景
GraphAPI2.0が2014/04/30に発表された(既にアプリ作ったらv2.1になるけど)。
GraphAPIのエンドポイントが変わるとアナウンスされているので、既存のAPIを叩いたときとの違いを見てみることにした。
GraphAPIのレスポンスヘッダに処理バージョンが載るので、これで確認する。
以下、httpclientでGraphAPI叩いた時の一例
#<HTTP::Message:0x00000002a30fa0
@http_header=
#<HTTP::Message::Headers:0x00000002a30f28
...
@header_item=
[["Facebook-API-Version", "v1.0"],
以下略
やったこと
rubyのhttpclientでエンドポイントを指定してGraphAPIを叩いた。
その時に使ったアクセストークンは以下。
- v1.0の時に作成したアプリでOAuthして得たアクセストークン
- v2.1で作成したアプリでOAuthして得たアクセストークン
叩いたAPIは、以下の2つ。
- GET /me
- POST /me/feed
結果
/meも/me/feedもレスポンスの違いはなかったので、/meだけについて記載。
v1.0の時に作成したアプリでOAuthして得たアクセストークンでAPIアクセス
エンドポイント | 実際に叩かれたAPIバージョン | エンドポイント指定なしとの比較 |
---|---|---|
/me | v1.0 | ---- |
/v1.0/me | v1.0 | なし |
/v2.0/me | v2.0 | なし |
/v2.1/me | v2.1 | なし |
v2.1で作成したアプリでOAuthして得たアクセストークンでAPIアクセス
エンドポイント | 実際に叩かれたAPIバージョン | エンドポイント指定なしとの比較 |
---|---|---|
/me | v2.1 | ---- |
/v1.0/me | v2.1 | なし |
/v2.0/me | v2.1 | なし |
/v2.1/me | v2.1 | なし |
まとめ
- v1.0のアプリからAPIアクセスすると、指定したエンドポイントのAPIで処理される
- v2.1のアプリからAPIアクセスすると、指定したエンドポイントは無視されて、v2.1で処理される
アプリで上記2つのAPI使ってても、2015/04/30の切り変えで影響はなさそう。
他のAPIはぼちぼち見ていく。