คำขอแก้ไขจุดบกพร่อง

โหมดแก้ไขจุดบกพร่องของ 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 ให้เป็น "ทั้งหมด" หรือให้เป็นระดับความรุนแรงที่น้อยที่สุดที่มีการร้องขอตาม type ของข้อความได้ดังนี้:

แก้ไขจุดบกพร่องของค่าพารามิเตอร์ สิ่งที่จะส่งคืน

ทั้งหมด

ข้อความแก้ไขจุดบกพร่องที่มีทั้งหมด

ข้อมูล

ข้อความแก้ไขจุดบกพร่องประเภท ข้อมูล และ คำเตือน

คำเตือน

ข้อความแก้ไขจุดบกพร่องประเภทคำเตือนเท่านั้น

หากมี ระบบจะส่งคืนข้อมูลแก้ไขจุดบกพร่องในรูปแบบอ็อบเจ็กต์ JSON ใต้คีย์ __debug__ ในอาร์เรย์ messages องค์ประกอบทุกรายการของอาร์เรย์นี้จะเป็นอ็อบเจ็กต์ JSON ที่มีช่องต่อไปนี้:

ฟิลด์ ประเภทข้อมูล คำอธิบาย

ข้อความ

สตริง

ข้อความ

ประเภท

สตริง

ความรุนแรงของข้อความ

ลิงก์

สตริง

[ระบุหรือไม่ก็ได้] URL ที่ชี้ไปยังข้อมูลที่เกี่ยวข้อง

คุณยังสามารถใช้โหมดแก้ไขจุดบกพร่องกับ Graph API Explorer ได้อีกด้วย

การระบุเวอร์ชั่นที่ใช้โดยคำขอ API

เมื่อคุณกำลังสร้างแอพและส่งคำขอ API กราฟ คงเป็นการดีถ้าคุณจะระบุเวอร์ชั่น API ที่จะส่งการตอบกลับคืนมาด้วย ตัวอย่างเช่น หากคุณกำลังเรียกโดยไม่ระบุเวอร์ชั่น เวอร์ชั่น API ที่ตอบกลับมาอาจเป็นเวอร์ชั่นที่ระบบของคุณไม่รู้จัก

API กราฟจะมอบส่วนหัวคำขอมากับการตอบกลับต่างๆ ที่เรียกว่า facebook-api-version ซึ่งจะช่วยระบุเวอร์ชั่น API ที่สร้างการตอบกลับนั้น ตัวอย่างเช่น การเรียก API กราฟที่สร้างคำขอกับเวอร์ชั่น 2.0 จะสร้างส่วนหัว HTTP ต่อไปนี้:

facebook-api-version:v2.0

ส่วนหัว facebook-api-version นี้จะช่วยให้คุณสามารถตรวจสอบได้ว่าการเรียก API ที่กำลังส่งคืนมานั้นมาจากเวอร์ชั่นที่คุณคาดหวังหรือไม่

ข้อมูลการแก้ไขจุดบกพร่องสำหรับการรายงานจุดบกพร่อง

เมื่อรายงานจุดบกพร่องใน API กราฟ เราจะเพิ่มส่วนหัวของคำขอแล้วส่งไปกับรายงานจุดบกพร่องของคุณด้วยเพื่อช่วยเราระบุข้อมูลและทำซ้ำปัญหาของคุณ ส่วนหัวของคำขอเหล่านี้ได้แก่ X-FB-Debug, x-fb-rev และ X-FB-Trace-ID