디버그 요청

그래프 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에 해당하는 최소 요청 심각도 수준으로 설정할 수 있습니다.

디버그 매개변수 값 반환되는 내용

모두

사용 가능한 모든 디버그 메시지

info

infowarning 유형이 포함된 디버그 메시지

warning

warning 유형이 포함된 디버그 메시지만

정보(해당하는 경우)는 messages 배열의 __debug__ 키 아래에 JSON 개체로 반환됩니다. 이 배열의 모든 요소는 다음 필드가 포함된 JSON 개체입니다.

필드 데이터 유형 설명

메시지

문자열

메시지

유형

문자열

메시지 심각도

링크

문자열

[선택 사항] 관련 정보를 가리키는 URL

그래프 API 탐색기에서 디버그 모드를 사용할 수도 있습니다.

API 요청에서 사용하는 버전 확인

앱을 빌드하고 그래프 API 요청을 보낼 때 응답을 보내는 API 버전을 알면 유용할 수 있습니다. 예를 들어 버전을 지정하지 않고 호출할 경우 응답하는 API 버전을 모를 수 있습니다.

그래프 API는 모든 응답에 응답을 생성한 API의 정확한 버전을 나타내는 facebook-api-version이라는 요청 헤더를 제공합니다. 예를 들어 v2.0으로 요청을 생성하는 그래프 API 호출은 다음과 같은 HTTP 헤더를 생성합니다.

facebook-api-version:v2.0

facebook-api-version 헤더를 사용하면 API 호출이 예상 버전에서 반환되는지 확인할 수 있습니다.

버그 신고를 위한 디버그 정보

그래프 API에서 버그를 신고하면 Facebook에서는 해당 문제를 찾아내 재현하는 데 도움이 되도록 버그 보고서에 몇 가지 추가 요청 헤더를 포함합니다. 이러한 요청 헤더는 X-FB-Debug, x-fb-rev, X-FB-Trace-ID입니다.