4/25 から開催された F8 2015 で、Graph API v2.3 が紹介されました。Graph API を扱う上で影響が大きいと思われるものをここでは紹介します。詳細は公式 ChangelogUpgrade Guide を参照してください。

/oauth/access_token のレスポンス変更

これまでは URL エンコードされたクエリ文字列が以下の様な形式で返されていました。
access_token=foobar&expires=5183814
今後は以下のように JSON オブジェクトが返されるようになり、項目も若干変わります。 expires が expires_in に変わっている点も要注意です。
{"access_token":"123456789XXXXXXXXXXX","token_type":"bearer","expires_in":5183814}
Facebook::OpenGraph では対応済で、Version 1.23 をリリースしてあります。以下のように Graph API から返される実行バージョンを比較して適宜扱いを変えています。
話は逸れますが、このバージョン比較では Graph API から返される facebook-api-version ヘッダを参照しています。この場合、バージョン指定なしでリクエストしていたり、失効済みのバージョンを指定していてデフォルトバージョンに暗黙に切り替わった場合でも、実際に実行されたバージョンを正しく取得できるのが便利です。開発者コミュニティに何か質問する前にこの facebook-api-version ヘッダを確かめておいたり、Facebook Platform にバグ登録する際には x-fb-rev ヘッダを共有すると捗ります。詳しくは Debuggin API Requests の該当箇所を参照してください。

また、Python 版 facebook_graph にも同等の変更を入れ、Facebook::Graph の対応も pull-req 済みです。

limit パラメータのデフォルト値が 25 に

これまで、友達一覧取得 API ではデフォルトで全件が返されるなど、エンドポイントによって limit 未指定時のデフォルトの挙動が異なっていました。今度から、limit を省略した場合のデフォルト値は 25 に統一されます。

空配列は []、空オブジェクトは {} を返す

これまで、対象となるオブジェクトが存在しなければ空配列が返されるケースなどがありました。今後は、配列で返るべきケースとオブジェクトで返るべきケースでより一貫性を持つようになります。v2.1 公開時には、それまで true もしくは false の真偽値のみ返すエンドポイントがある傍らで {"success": true} を返すエンドポイントがあったりしたのを統一していましたが、今回も同様に、より一貫性を持たせる類の変更となります。

Facebook Page の Real-time Updates サポート強化

v2.2 公開時に Facebook Page の Real-time Updates API が追加されましたが、さらに今度の変更でサポートが強化されました。色々と項目が増えていますので、Changelog を参照してください。

デバッグモード追加

今後、リクエスト時に debug パラメータを指定するとデバッグ情報が返されるようになります。先述の facebook-api-version や x-fb-rev ヘッダと併用すると便利そうです。指定できる値は all, info, warning となります。それぞれの返り値については Debugging API Requests の一覧を参照してください。