调试请求

图谱 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

类型为 infowarning 的调试消息。

warning

类型仅为 warning 的调试消息。

系统将在 messages 数组中的 __debug__ 键值下,以 JSON 对象的形式返回调试信息(如适用)。此数组的每个元素都是包含以下字段的 JSON 对象:

字段 数据类型 说明

消息

字符串

消息。

类型

字符串

消息严重性。

链接

字符串

[可选] 指向相关信息的网址。

您还可以将调试模式与图谱 API 探索工具搭配使用。

确定 API 请求使用的版本

如果您在构建应用并发出图谱 API 请求,则会发现确定自己通过哪个版本的 API 获得响应非常有用。例如,如果您在未指定版本时发出调用,那么您可能并不了解作出响应的 API 版本。

图谱 API 会为调用 facebook-api-version 的响应提供请求标头,以表明生成该响应的 API 的具体版本。例如,使用 v2.0 版本的 API 生成请求的图谱 API 调用将产生以下 HTTP 标头:

facebook-api-version:v2.0

您可借此 facebook-api-version 标头确定 API 调用是否会从您希望的 API 版本返回结果。

用于报告缺陷的调试信息

通过图谱 API 报告缺陷时,我们还会加入一些其他请求标头,并将其与您的缺陷报告一同发出,以帮助我们查明并再现您的问题。这些请求标头为 X-FB-Debugx-fb-revX-FB-Trace-ID