تُعدّ الجلسات عنصرًا أساسيًا في Picker API، إذ توفّر للمستخدمين أسلوبًا آمنًا ومُدارًا لاختيار الصور والفيديوهات من مكتبة "صور Google". يوضّح هذا الدليل كيفية إنشاء جلسات الاستطلاع وإدارتها وإجراء استطلاعات فعالة لتفعيل اختيار الصور بسلاسة في تطبيقك.
قبل البدء
- ضبط إعدادات تطبيقك: فعِّل واجهة برمجة التطبيقات واضبط المصادقة. اطّلِع على ضبط تطبيقك للاطّلاع على الخطوات المفصّلة.
- فهم العملية: راجِع البدء باستخدام Picker API للحصول على نظرة عامة على عملية اختيار الصور بالكامل.
- مراجعة نطاقات التفويض المطلوبة: يتطلّب العمل مع الجلسات نطاق
photospicker.mediaitems.readonly
. لمزيد من المعلومات عن النطاقات، اطّلِع على نطاقات التفويض.
مراحل النشاط في الجلسة
توفّر Picker API طرقًا لإنشاء الجلسات واسترداد معلومات عنها ومحوها. بعد مصادقة المستخدمين، يمكنك استخدام الجلسات لإدارة رحلة اختيار الصور.
- أنشئ جلسة لتفعيل قدرة المستخدم على اختيار عناصر الوسائط.
- استخدِم الاستطلاع في الجلسة للتحقّق من وقت انتهاء المستخدم من تحديد عناصر الوسائط.
- إدراج عناصر الوسائط واستردادها
- تنظيف الجلسة من خلال حذفها
إنشاء جلسات
أنشئ جلسة ليختار المستخدمون الصور بأمان مباشرةً من تطبيق "صور Google"، ثم يشاركونها مرة أخرى مع تطبيقك.
يُنشئ sessions.create
جلسة جديدة، ويعرض pickerUri
فريدًا
يمكنك تقديمه للمستخدمين. وتظل الجلسة نشطة إلى أن يختار المستخدِم
عناصر الوسائط بنجاح أو تنتهي مهلة الجلسة.
حدود الجلسات
انتبه للحدود القصوى المسموح بها للجلسات. تفرض Picker API حدودًا على عدد الجلسات التي يمكنك إنشاؤها لضمان الاستخدام المسؤول ومنع إساءة الاستخدام. في ظل ظروف عادية، من غير المرجّح أن تصل إلى هذه الحدود. ومع ذلك، عليك تتبُّع الجلسات وتنظيفها بشكل استباقي لتجنُّب أي مشاكل.
الاستطلاعات ومراقبة الجلسات
بعد إنشاء جلسة، يتم إجراء استطلاع دوري لنقطة نهاية sessions.get
للحصول على
حالة الجلسة. تُعرِض السمة mediaItemsSet
في الاستجابة قيمة
true
عندما يُكمل المستخدم اختياره.
احرص على استخدام طريقة فعّالة للاستطلاع. يتضمّن الردّ sessions.get
عنصر
pollingConfig
. استخدِم الحقول التالية لمساعدتك في تجنُّب طلبات التعديل غير الضرورية وتقديم تجربة سلسة للمستخدم:
pollInterval
: فواصل الاستطلاع المثلى-
timeoutIn
: مدة الاستبعاد
اطّلِع على مثال على عملية الاستطلاع للحصول على مزيد من التفاصيل.
حذف الجلسات وتنظيمها
sessions.delete
يزيل جلسة، ويُستخدَم عادةً للتنظيف بعد أن ينتهي المستخدِم
من اختيار الوسائط أو إذا انتهت مهلة الجلسة.
من أفضل الممارسات حذف الجلسات بعد اختيار المستخدم لعناصر الوسائط واسترداد تطبيقك لعناصر الوسائط بايت.
مثال على مسار الاستطلاع
في ما يلي مثال على إنشاء جلسة وإجراء استطلاع لها. بعد مصادقة المستخدِم لأول مرة، أنشئ جلسة جديدة.
- إنشاء جلسة: اتصل بالرقم
sessions.create
لبدء جلسة جديدة و الحصول علىpickerUri
. - عرض
pickerUri
على المستخدم: يمكنك عرض عنوان URL أو إنشاء رمز استجابة سريعة ليتمكّن المستخدم من مسحه ضوئيًا. اطّلِع على نظرة عامة على تجربة اختيار المستخدم. - الاستطلاع في الجلسة:
- استخدِم القيمة المُقترَحة لفئة pollInterval من
pollingConfig
. - تحقَّق مما إذا كان
mediaItemsSet
صحيحًا.- إذا كانت الإجابة
true
، انتقِل إلى إدراج ملفات الوسائط المحدّدة. - إذا كانت القيمة
false
، يُرجى مواصلة الاستطلاع إلى أن يتم الوصول إلى القيمةtimeoutIn
.
- إذا كانت الإجابة
- معالجة حالات انتهاء مهلة الإرسال والإلغاء بسلاسة
- استخدِم القيمة المُقترَحة لفئة pollInterval من
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}
في ما يلي مثال على الردّ:
{
"id": string,
"pickerUri": string,
"pollingConfig": {
object (PollingConfig)
},
"mediaItemsSet": boolean
}
اعرض pickerUri
على المستخدم، ثم ابدأ الاستطلاع في الجلسة.
تحقَّق من الردّ بحثًا عن ما يلي:
-
mediaItemsSet
: صحيح إذا أنهى المستخدم اختيار عناصر الوسائط pollingConfig.pollInterval
: الوقت المُقترَح للانتظار قبل إجراء الاستطلاع التالي-
pollingConfig.timeoutIn
: إجمالي الوقت الذي يجب الانتظار خلاله قبل انتهاء مهلة الانتظار
إذا كانت قيمة mediaItemsSet
غير صحيحة ولم يتم الوصول إلى timeoutIn
، انتظِر until
pollInterval
ثم أجرِ الاستطلاع مرة أخرى.
إذا كان mediaItemsSet
صحيحًا، يمكنك المتابعة إلى إدراج عناصر الوسائط المحدّدة.
إذا تم الوصول إلى timeoutIn
، عليك التعامل مع مهلة الانتظار بشكلٍ مناسب.