عند استخدام أحد رموز الوصول، قد تحتاج إلى التحقق من المعلومات المتعلقة به، مثل المستخدم أو وقت انتهاء الصلاحية. وللحصول على هذه المعلومات، يمكنك استخدام أداة تصحيح الأخطاء أو يمكنك استخدام نقطة النهاية لواجهة API.
لاستخدام واجهة API، يمكنك إصدار طلب واجهة Graph API:
curl -i -X GET "https://graph.facebook.com/debug_token? input_token={input-token}& access_token={valid-access-token}
استبدل {input-token}
برمز الوصول الذي ترغب في الحصول على معلومات متعلقة به واستبدل {access-token}
برمز وصول صالح. ويجب أن يتم إصدار الرموز المميزة من التطبيق نفسه.
تكون استجابة استدعاء واجهة API عبارة عن مصفوفة بلغة JSON تبدو كما يلي:
{ "data":{ "app_id":"{app-id}", "type":"USER", "application":"{app-name}", "data_access_expires_at":1576687825, "expires_at":1570820400, "is_valid":true, "scopes":[ "pages_show_list", "public_profile" ], "granular_scopes":[ { "scope":"pages_show_list", "target_ids":[ "{page-1-app-can-access-id}", "{page-2-app-can-access-id}" ] } ], "user_id":"10215241773831025" } }
بالنسبة لرموز الوصول طويلة الأجل، يتم أيضًا إرجاع الحقل issued_at
.
لن يرسل فيسبوك أي إشعار حول انتهاء صلاحية رمز الوصول. وما لم تكن قد أرسلت وقت expiry
إلى تطبيقك وكذلك رمز الوصول، فقد لا يكتشف تطبيقك إلا أن الرمز المميز المتوفر غير صالح عندما تحاول إجراء طلب إلى واجهة API.
وبسبب الأحداث المتعلقة بالأمان، قد يتم إبطال صلاحية رموز الوصول قبل وقت انتهاء الصلاحية المتوقع.
ففي معظم التطبيقات، تُعد أفضل طريقة للتعامل مع الرموز منتهية الصلاحية هي التقاط رسائل الخطأ الصادرة عن واجهة API. في كل حالة، ستقوم واجهة API بإرجاع رسالة خطأ ورمز برمجي ورمز برمجي فرعي من خلال نص بلغة JSON يشرح طبيعة الخطأ. لمزيد من المعلومات حول الرموز البرمجية والرموز البرمجية الفرعية، يرجى الرجوع إلى مستند مرجع رمز الخطأ.
{ "error": { "message": "Error validating access token: Session has expired on Wednesday, 14-Feb-18 18:00:00 PST. The current time is Thursday, 15-Feb-18 13:46:35 PST.", "type": "OAuthException", "code": 190, "error_subcode": 463, "fbtrace_id": "H2il2t5bn4e" } }
يتم إرسال الاستجابة عندما يسجّل شخص ما الخروج من تطبيقك أو يجري تغييرًا على كلمة السر الخاصة به.
{ "error": { "message": "Error validating access token: The session is invalid because the user logged out.", "type": "OAuthException", "code": 190, "error_subcode": 460, "fbtrace_id": "H2il2t5bn4e" } }
سيحتاج الشخص إلى تسجيل الدخول مرة أخرى للحصول على رمز وصول صالح بحيث تتمكّن من إجراء استدعاءات واجهة API نيابة عنه. ويجب أن يحدد دفق تسجيل الدخول الذي يستخدمه تطبيقك للأشخاص الجدد الأسلوب الذي يجب اتباعه.
عندما يلغي شخص ما التصريح أو إذا لم يصرح بتطبيقك مطلقًا، ستكون استجابة الخطأ مماثلة للاستجابة لدى شخص جديد في تطبيقك.
{ "error": { "message": "Error validating access token: User {user-id} has not authorized application {your-app-id}.", "type": "OAuthException", "code": 190, "error_subcode": 458, "fbtrace_id": "H2il2t5bn4e" } } }
تظهر أخطاء واجهة API في مجموعة iOS SDK بصفة أساسية من خلال مثيلات NSError
التي يتم تمريرها إلى عمليات الاستدعاء. لمزيد من التفاصيل، يرجى الرجوع إلى مستندات الأخطاء في مجموعة SDK لنظام التشغيل iOS.
تظهر أخطاء واجهة API في مجموعة Android SDK بصفة أساسية عبر الكائن Response
الذي يتم تمريره إلى استدعاء Requests
. يمكنك تحديدًا استدعاء response.getError()
لاسترداد مثيل FacebookRequestError
.
يمكنك الاطلاع على المزيد من الأخطاء في مرجع أخطاء واجهة API، ولكن هذه الأخطاء الثلاثة هي الأكثر شيوعًا عند التعامل مع رموز الوصول.