طلبات تصحيح الأخطاء

وضع تصحيح الأخطاء في واجهة Graph API

عند تمكين وضع تصحيح الأخطاء، يمكن أن تحتوي استجابة واجهة Graph 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 في للرسالة:

قيمة معلمة تصحيح الأخطاء النتائج التي سيتم إرجاعها

all (الكل)

جميع رسائل تصحيح الأخطاء المتوفرة.

info (معلومات)

رسائل تصحيح الأخطاء بالنوع info (معلومات) وwarning (تحذير).

warning (تحذير)

رسائل تصحيح الأخطاء بالنوع warning (تحذير) فقط.

يتم إرجاع معلومات حول تصحيح الأخطاء، في حالة توفرها، في صورة كائن بلغة JSON ضمن المفتاح __debug__ في المصفوفة messages. علمًا بأن كل عنصر في هذه المصفوفة يمثل كائنًا بلغة JSON يحتوي على الحقول التالية:

الحقل نوع البيانات الوصف

message (الرسالة)

string (سلسلة)

يمثل الرسالة.

type (النوع)

string (سلسلة)

يمثل مستوى أهمية الرسالة.

link (الرابط)

string (سلسلة)

[اختياري] يمثل عنوان URL الذي يشير إلى المعلومات ذات الصلة.

يمكنك أيضًا استخدام وضع تصحيح الأخطاء مع مستكشف واجهة Graph API.

تحديد الإصدار المُستخدم بواسطة طلبات واجهة API

عند تطوير تطبيق وإجراء طلبات واجهة Graph API، قد تجد أنه من المفيد تحديد إصدار واجهة API الذي تتلقى استجابة من جانبه. فعلى سبيل المثال، إذا كنت تُجري استدعاءً دون تحديد الإصدار، فقد لا يكون إصدار واجهة API التي ترسل الاستجابة واضحًا بالنسبة لك.

توفر واجهة Graph API عنوان طلب مع أي استجابة تستدعي facebook-api-version، وهو يشير بدوره إلى الإصدار الصحيح لواجهة API التي أنشأت الاستجابة. فعلى سبيل المثال، ينتج عن استدعاء واجهة Graph API الذي ينشئ طلبًا باستخدام الإصدار 2.0 توفير عنوان HTTP التالي:

facebook-api-version:v2.0

يتيح لك عنوان facebook-api-version هذا تحديد ما إذا كان يتم إرجاع استدعاءات واجهة API من الإصدار الذي تتوقعه أم لا.

معلومات تصحيح الأخطاء للإبلاغ عن الأخطاء

عند الإبلاغ عن خطأ في واجهة Graph API، نعمل على تضمين بعض عناوين الطلبات الإضافية لإرسالها مع بلاغ الخطأ من جانبك لمساعدتنا في تحديد المشكلة التي تواجهها ومحاكاتها. وتتمثل عناوين الطلبات هذه في X-FB-Debug وx-fb-rev وX-FB-Trace-ID.