Gỡ lỗi yêu cầu

Chế độ gỡ lỗi API Đồ thị

Khi Chế độ gỡ lỗi được bật, nội dung phản hồi API Đồ thị có thể chứa các trường thông tin khác để giải thích những vấn đề có thể xảy ra với yêu cầu.

Để bật chế độ gỡ lỗi, hãy sử dụng thông số chuỗi truy vấn debug. Ví dụ:

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();

Nếu quyền user_friends không được cấp, thao tác này sẽ trả về phản hồi sau đây:

{
  "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"
      }
    ]
  }
}

Giá trị thông số debug có thể được đặt thành "all" (tất cả) hoặc đặt ở mức độ nghiêm trọng tối thiểu đã yêu cầu để tương ứng với type của thông báo:

Giá trị thông số gỡ lỗi Nội dung sẽ được trả về

all

Mọi thông báo gỡ lỗi có sẵn.

info

Các thông báo gỡ lỗi thuộc loại info (thông tin) và warning (cảnh báo).

warning

Chỉ các thông báo gỡ lỗi thuộc loại warning (cảnh báo).

Thông tin gỡ lỗi (nếu có) sẽ được trả về ở dạng đối tượng JSON bên dưới khóa __debug__ trong mảng messages. Mọi thành phần trong mảng này đều là đối tượng JSON có chứa các trường thông tin sau đây:

Trường Loại dữ liệu Mô tả

message

Chuỗi

Thông báo.

type

Chuỗi

Mức độ nghiêm trọng của thông báo.

link

Chuỗi

[Không bắt buộc] URL hướng đến thông tin có liên quan.

Bạn cũng có thể sử dụng Chế độ gỡ lỗi với Trình khám phá API Đồ thị.

Xác định phiên bản mà các yêu cầu API sử dụng

Khi xây dựng một ứng dụng và gửi yêu cầu API Đồ thị, bạn có thể cần xác định phiên bản API mà mình sẽ dùng để lấy phản hồi. Ví dụ: nếu gửi yêu cầu mà không chỉ định phiên bản, bạn có thể không biết được phiên bản API nào sẽ phản hồi.

API Đồ thị sẽ cung cấp tiêu đề yêu cầu kèm theo bất kỳ phản hồi nào có tên facebook-api-version để cho biết phiên bản API chính xác đã phản hồi. Ví dụ: một lệnh gọi API Đồ thị gửi yêu cầu bằng phiên bản 2.0 sẽ tạo ra tiêu đề HTTP sau đây:

facebook-api-version:v2.0

Với tiêu đề facebook-api-version này, bạn có thể xác định liệu các lệnh gọi API có được trả về từ phiên bản mà bạn muốn hay không.

Thông tin gỡ lỗi để báo cáo lỗi

Khi báo cáo một lỗi trong API Đồ thị, chúng tôi sẽ thêm một số tiêu đề yêu cầu khác để gửi kèm báo cáo lỗi nhằm xác định và tái tạo vấn đề mà bạn gặp phải. Các tiêu đề yêu cầu này là X-FB-Debug, x-fb-revX-FB-Trace-ID.