تؤدي مشاركة بيانات الاعتماد في جميع طلبات البيانات من واجهة برمجة التطبيقات إلى تحسين الأداء وتجنُّب النفقات الزائدة التي يمكن أن تؤدي إلى حدوث أخطاء متعلّقة بالحدّ من معدّل الزحف. يشرح هذا الدليل كيفية تحسين إدارة بيانات اعتماد OAuth2 حتى يتمكن تطبيقك من التفاعل بكفاءة مع Google Ads API.
وستعتمد استراتيجية مشاركة بيانات الاعتماد على ما إذا كان تطبيقك متعدّد سلاسل التعليمات أو متعدد العمليات (أو موزّعًا). إنّ التطبيق المتعدد العمليات ومتعدد سلاسل المحادثات ضمن كل عملية يجب أن يستخدم كلتا الاستراتيجيتَين. يمكن تكييف هذه الاستراتيجيات لتناسب حسابات إعلانات Google المتعددة.
سلاسل المحادثات المتعددة
يجب أن تستخدم كل جلسة أو مستخدم تم رسمه من خلال سلسلة محادثات كائن بيانات الاعتماد نفسه. ويجب أيضًا إجراء عمليات إعادة تحميل رمز الدخول بشكل متزامن لتجنُّب حالات السباق.
تضمن مكتبات العملاء لدينا أن بيانات الاعتماد عبارة عن كائن آمن لسلسلة المحادثات ويتم تحديثه بشكل متزامن عند انتهاء صلاحية رمز الدخول. ولكل من مكتبات العملاء لدينا كائن جلسة (أو مستخدم) مع بيانات اعتماد يعيد استخدامه طوال عمره. لمشاركة بيانات الاعتماد عبر سلاسل المحادثات، ما عليك سوى
إنشاء كل جلسة باستخدام بيانات الاعتماد ذاتها. على سبيل المثال، في مكتبة عملاء Java، يمكنك إنشاء أغنية منفردة Credential
ومشاركتها في جميع الجلسات.
عمليات متعددة أو موزَّعة
بالنسبة إلى العمليات المتعددة العمليات أو الموزعة، تحتاج إلى الاحتفاظ ببيانات الاعتماد قبل أن تتمكن من مشاركتها. لضمان عدم محاولة عدة عمليات أو خوادم تحديث بيانات الاعتماد في الوقت نفسه، ما يؤدي إلى إرسال طلبات إعادة تحميل زائدة، يجب ضبط عملية إعادة التحميل على عملية واحدة.
على سبيل المثال، يمكن أن تكون وظيفة أو خدمة منفصلة مسئولة عن تحديث بيانات الاعتماد بشكل دوري ودفعها بشكل استباقي إلى مخزن بيانات تشاركه مجموعة من الخوادم. يمكن لكل خادم بعد ذلك استرداد بيانات الاعتماد من مخزن البيانات عند إجراء طلب واجهة برمجة التطبيقات.
إعادة تحميل المهمة
يجب ألا تنتظر مهمة التحديث حتى تنتهي صلاحية بيانات الاعتماد الحالية قبل بدء التحديث. قد يؤدي ذلك إلى توقّف التطبيق عن العمل بسبب عدم توفّر بيانات اعتماد صالحة. ومع ذلك، في حال انتهاء صلاحية رمز الدخول الخاص ببيانات الاعتماد أثناء معالجة طلب واجهة برمجة التطبيقات، سيظل الطلب مكتملاً وعرض النتائج.
ننصحك بتتبُّع الوقت الذي تمت فيه إعادة تحميل رمز الدخول آخر مرة وفرض إعادة التحميل إذا مرّ أقل من 5 دقائق على انتهاء الصلاحية.
إذا كنت لا تعرف آخر مرة تمت فيها إعادة تحميل رمز الدخول، يمكنك محاولة إعادة تحميله على افتراض انتهاء صلاحيته. إذا لم يكن رمز الدخول قريبًا من الانتهاء، يعرض الخادم رمز الدخول نفسه، إلى جانب وحدات المللي ثانية المتبقية حتى تنتهي صلاحية الرمز المميز.
مخزن البيانات
يمكنك الاستفادة من مخزن بيانات حالي أو نشر مخزن بيانات خاص بمشاركة بيانات الاعتماد بين الخوادم. وتشمل الحلول خوادم التخزين المؤقت، مثل Memcached أو Infinispan، أو مخازن بيانات NoSQL، مثل MongoDB.
يجب تحسين مخزن البيانات لعمليات القراءة السريعة نظرًا لأن هناك طلبات قراءة أكثر من الكتابة. ويجب تخزين بيانات الاعتماد بشكلٍ آمن.
عند تخزين بيانات الاعتماد، عليك تخزين القيم المحسوبة expiry_time
(الآن + expires_in
) وrefresh_token
إلى جانب access_token
. يتم احتساب
expiry_time
على أنّه وقت طلب إعادة تحميل access_token
مع الوقت expires_in
.
مجموعة الخادم
يسترد كل خادم أو عملية في المجموعة أحدث بيانات الاعتماد من مخزن البيانات قبل إجراء الطلب. وطالما أن مهمة التحديث تعمل بشكل صحيح، ستكون بيانات الاعتماد صالحة. ومع ذلك، إذا فشلت مهمة التحديث أو مخزن البيانات، فيجب أن تكون لديك آلية احتياطية.
وإذا لم يتمكن الخادم أو العملية من الحصول على بيانات اعتماد من مخزن البيانات، أو إذا انتهت صلاحية بيانات الاعتماد، على الخادم إعادة تحميل بيانات الاعتماد الخاصة به للسماح للتطبيق بمواصلة العمل مع واجهة برمجة التطبيقات حتى يتم حل المشكلة.
إدارة بيانات الاعتماد لحسابات متعددة
يمكن استخدام بيانات اعتماد تم إنشاؤها لحساب إداري على "إعلانات Google" للوصول إلى جميع حساباته الفرعية. وبالتالي، يكفي عادةً إنشاء بيانات اعتماد للحساب الإداري ذي المستوى الأعلى لاستخدامه في جميع حسابات "إعلانات Google" المندرجة ضمنه وذلك بالنسبة إلى المستخدِمين الذين لديهم تسلسل هرمي واحد للحساب الإداري.
إذا كان تطبيقك يحتاج إلى الوصول إلى حسابات "إعلانات Google" غير مرتبطة ببعضها في أي تسلسل هرمي للحسابات الإدارية، عليك إنشاء بيانات اعتماد مختلفة والاحتفاظ بها للحسابات المختلفة، مثل بيانات اعتماد مختلفة لكل حساب عميل في "إعلانات Google" تصل إليه، أو كل حساب إداري عالي المستوى في التدرّجات الهرمية المستقلة التي يمكنك الوصول إليها.
يمكنك اتّباع الاستراتيجيات نفسها للتطبيقات المتعددة السلاسل أو العمليات المتعددة أو الموزَّعة التي تحتوي على تعديلات طفيفة. عند استخدام مخزن بيانات مشترك، يجب أن تتم فهرسة بيانات الاعتماد باستخدام معرّف الحساب customerId
لضمان ربط بيانات الاعتماد بالحساب الصحيح.
بالإضافة إلى ذلك، يجب أن تحافظ مهمة التحديث على إعادة تحميل جميع بيانات الاعتماد. إذا تم ربط حساب جديد، فقد يلزم بدء مهمة إعادة التحميل.
وأخيرًا، في التطبيقات المتعددة السلاسل، يجب عدم مشاركة كائن بيانات الاعتماد إلا في سلاسل المحادثات التي تعمل على الحساب الذي يرتبط به كائن بيانات الاعتماد.