デバッグリクエスト

グラフAPIデバッグモード

デバッグモードを有効にすると、グラフAPIの応答に、リクエストに関連する潜在的な問題について説明する追加のフィールドが含まれることがあります。

デバッグモードを有効にするには、debugクエリ文字列パラメーターを使用します。以下はその例です。

curl -i -X GET \
 "https://graph.facebook.com/{user-id}
 ?fields=friends
 &debug=all
 &access_token={your-access-token}"
GraphRequest request = GraphRequest.newMeRequest(
 accessToken,
 new GraphRequest.GraphJSONObjectCallback() {
 @Override
 public void onCompleted(JSONObject object, GraphResponse response) {
 // Insert your code here
 }
});
Bundle parameters = new Bundle();
parameters.putString("fields", "friends");
parameters.putString("debug", "all");
request.setParameters(parameters);
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
 initWithGraphPath:@"/{user-id}"
 parameters:@{ @"fields": @"friends",@"debug": @"all",}
 HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
 // Insert your code here
}];
FB.api(
 '/{user-id}',
 'GET',
 {"fields":"friends","debug":"all"},
 function(response) {
 // Insert your code here
 }
);
try {
 // Returns a `FacebookFacebookResponse` object
 $response = $fb->get(
 '/{user-id}',
 '{access-token}'
 );
} catch(FacebookExceptionsFacebookResponseException $e) {
 echo 'Graph returned an error: ' . $e->getMessage();
 exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
 echo 'Facebook SDK returned an error: ' . $e->getMessage();
 exit;
}
$graphNode = $response->getGraphNode();

user_friendsアクセス許可が付与されていないと、次の応答が生成されます。

{
 "data": [
 ], 
 "__debug__": {
 "messages": [
 {
 "message": "Field friends is only accessible on User object, if user_friends permission is granted by the user", 
 "type": "warning"
 }, 
 {
 "link": "https://developers.facebook.com/docs/apps/changelog#v2_0", 
 "message": "Only friends who have installed the app are returned in versions greater or equal to v2.0.", 
 "type": "info"
 }
 ]
 }
}

debugパラメーター値は、「all」に設定することも、メッセージのtypeに応じて求められる最小重大度レベルに設定することもできます。

デバッグパラメーター値 返される内容

all

利用可能なすべてのデバッグメッセージ。

info

タイプがinfoおよびwarningのデバッグメッセージ。

warning

タイプがwarningのデバッグメッセージのみ。

デバッグ情報があれば、messages配列の__debug__キーで、JSONオブジェクトとして返されます。この配列のすべての要素は、次のフィールドを含んだJSONオブジェクトになります。

フィールド データ型 説明

message

文字列

メッセージ。

type

文字列

メッセージの重大度。

link

文字列

[任意] 関連情報を指すURL。

デバッグモードはグラフAPIエクスプローラでも使えます。

APIリクエストが使用するバージョンの判定

アプリのビルド中にグラフAPIリクエストを発行する場合、応答を返しているAPIバージョンを判別できると便利なことがあります。例えば、バージョンを指定せずに呼び出しを実行すると、応答しているAPIのバージョンが分からないかもしれません。

グラフAPIには、facebook-api-versionという、任意の応答で使えるリクエストヘッダーがあります。このヘッダーは、応答を生成したAPIの正確なバージョンを示します。例えば、v2.0のリクエストを生成するグラフAPI呼び出しでは、次のHTTPヘッダーが生成されます。

facebook-api-version:v2.0

このfacebook-api-versionヘッダーを使えば、API呼び出しで返される応答が予期したバージョンのものかどうかを判別できます。

バグ報告用のデバッグ情報

グラフAPIでバグを報告する際には、バグレポートと一緒に、問題の特定や再現に役立つ追加のリクエストヘッダーを含めて送信してください。これらのリクエストヘッダーは、X-FB-Debugx-fb-revX-FB-Trace-IDです。

AltStyle によって変換されたページ (->オリジナル) /