لمحة عن هذا الدرس التطبيقي حول الترميز
1. استخدام واجهات برمجة التطبيقات في Google Workspace
يوفّر لك هذا الدرس التطبيقي حول الترميز إمكانية استخدام واجهات برمجة تطبيقات RESTful المستندة إلى HTTP في Google Workspace (المعروف سابقًا باسم G Suite). سيتم تنفيذ هذا المثال في بايثون للإيجاز والتوافر، ولكن يمكنك أيضًا اختيار استخدام لغة التطوير المفضلة لديك. يمكنك الاطّلاع على مواضيع تمهيدية، مثل كيفية استخدام وحدة تحكّم المطوّرين لإنشاء المشاريع أو إدارتها والحصول على بيانات اعتماد التفويض وتثبيت مكتبات عملاء واجهة برمجة التطبيقات. مع مراعاة الإجراءات الرسمية، ستكتب تطبيقًا لعرض أول 100 ملف المجلدات في Google Drive باستخدام واجهة برمجة التطبيقات التابعة لها.
ما ستتعرَّف عليه
- إنشاء مشروع باستخدام Google/Cloud Developers Console
- الحصول على & استخدام بيانات اعتماد تطبيق OAuth2 في تطبيقك
- مزيد من المعلومات عن استخدام مكتبات عملاء Google APIs
- كتابة التطبيقات باستخدام Google واجهات برمجة التطبيقات في Google Workspace
- الحصول على معلومات الملفات والمجلدات باستخدام Google Drive API
المتطلبات
- الوصول إلى الإنترنت ومتصفّح الويب
- حساب على Google (قد تتطلّب حسابات Google Workspace موافقة المشرف)
- التعرف على الأنظمة المتوافقة مع POSIX مثل Linux نظام التشغيل Mac OS X
- إمكانية إنشاء ملفات مصدر باستخدام أداة تعديل الرموز أو أوامر واجهة الأوامر
- المهارات الأساسية في Python (2 أو 3)، ولكن يمكنك استخدام أي لغة معتمَدة
- بعض الملفات و/أو المجلدات في Google Drive
2. استطلاع
كيف ستستخدم هذا الدرس التطبيقي حول الترميز؟
كيف يمكن تقييم تجربتك مع أدوات المطوّرين في Google Workspace من واجهات برمجة التطبيقات؟
3. نظرة عامة
ستتعلّم في هذا الدرس التطبيقي كيفية:
- تنزيل مكتبة برامج Google APIs للغة Python
- إنشاء مشروع جديد على Google/Cloud Developers Console
- الحصول على بيانات الاعتماد اللازمة لتطبيقك
- استخدام بيانات الاعتماد هذه للوصول إلى Google Drive API
إذا كنت تفضِّل عدم استخدام Python، يمكنك تنفيذ الدرس التطبيقي حول الترميز في أداة التطوير المفضَّلة لديك (تتوفّر مكتبات عملاء اللغات المتوافقة هنا) ويمكنك ببساطة الرجوع إلى أمثلة لغة Python على أنّها رمز زائف (قابل للتنفيذ) pseudocode.
4. تأكيد بيئة Python
يتطلّب هذا الدرس التطبيقي حول الترميز استخدام لغة Python (على الرغم من توفُّر العديد من اللغات في مكتبات عملاء Google APIs، لذلك لا تتردد في إنشاء شيء مكافئ في أداة التطوير المفضَّلة لديك واستخدام لغة Python كرمز زائف). بشكل خاص، يتوافق هذا الدرس التطبيقي حول الترميز مع Python 2 و3، ولكننا ننصح بالانتقال إلى 3.x في أقرب وقت ممكن.
تتوفّر Cloud Shell للمستخدمين مباشرةً من Cloud Console ولا تتطلّب بيئة تطوير محلية، وبالتالي يمكن تنفيذ هذا البرنامج التعليمي بالكامل في السحابة الإلكترونية باستخدام متصفّح ويب. يمكنك الاستفادة من Cloud Shell على وجه الخصوص إذا كنت تطور تطوير برامج GCP أو تخطط لمواصلة تطويرها. واجهات برمجة التطبيقات. وبشكل أكثر تحديدًا في هذا الدرس التطبيقي حول الترميز، سبق أن تم تثبيت كلا الإصدارَين من Python مسبقًا في Cloud Shell.
تم تثبيت IPython في Cloud Shell أيضًا... وهو برنامج ترجمة تفاعلية بلغة Python على مستوى أعلى ننصح به، خاصةً إذا كنت جزءًا من مجتمع علوم البيانات أو تعلُّم الآلة. إذا كان الأمر كذلك، فإن IPython هي أداة الترجمة التلقائية لنظام Jupyter Notebook بالإضافة إلى Colab، وهي دفاتر جوبيتر نوتبوك التي تستضيفها Google Research.
يفضل IPython استخدام مترجم Python 3 أولاً ولكنه يعود إلى Python 2 إذا لم يكن 3.x متاحًا. يمكن الوصول إلى IPython من Cloud Shell ولكن يمكن أيضًا تثبيتها في بيئة تطوير محلية. قم بالإنهاء باستخدام ^D (Ctrl-d) واقبل عرض الخروج. سيظهر مثال على ناتج البدء ipython
على النحو التالي:
$ ipython Python 3.7.3 (default, Mar 4 2020, 23:11:43) Type 'copyright', 'credits' or 'license' for more information IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help. In [1]:
إذا لم يكن خيار IPython هو تفضيلك، فإن استخدام مترجم Python تفاعلي عادي (إما Cloud Shell أو بيئة التطوير المحلية) مقبول تمامًا (الخروج أيضًا باستخدام ^D):
$ python Python 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 20170516] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> $ python3 Python 3.7.3 (default, Mar 10 2020, 02:33:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
يفترض الدرس التطبيقي حول الترميز أنّ لديك أداة التثبيت pip
(مدير حزم Python وأداة حلّ التبعيات). تأتي مزودة بالإصدار 2.7.9 أو الإصدارات الأحدث أو 3.4 الإصدارات الأحدث. إذا كان لديك إصدار قديم من Python، فراجع هذا الدليل للحصول على تعليمات التثبيت. استنادًا إلى أذوناتك، قد تحتاج إلى الحصول على إذن وصول sudo
أو مستخدم متميّز، ولكن هذا لا يحدث بشكل عام. يمكنك أيضًا استخدام pip2
أو pip3
بشكل صريح لتنفيذ pip
في إصدارات معيّنة من Python.
ويفترض الجزء المتبقي من الدرس التطبيقي حول الترميز أنّك تستخدم Python 3، وسيتم توفير تعليمات محدّدة للغة Python 2 إذا كانت تختلف كثيرًا عن 3.x.
*إنشاء بيئات افتراضية واستخدامها
هذا القسم اختياري ومطلوب فقط للمستخدمين الذين عليهم استخدام بيئة افتراضية لهذا الدرس التطبيقي (وفقًا للشريط الجانبي التحذيري أعلاه). إذا كان لديك Python 3 فقط على جهاز الكمبيوتر الخاص بك، يمكنك ببساطة إصدار هذا الأمر لإنشاء Virtualenv باسم my_env
(يمكنك اختيار اسم آخر حسب الرغبة):
virtualenv my_env
ومع ذلك، إذا كانت لديك كل من Python 2 3 على الكمبيوتر، ننصحك بتثبيت واجهة Python 3 الافتراضية التي يمكنك تنفيذها باستخدام -p flag
على النحو التالي:
virtualenv -p python3 my_env
أدخِل البيئة الافتراضية التي تم إنشاؤها حديثًا من خلال النقر على "تفعيل". على النحو التالي:
source my_env/bin/activate
تأكَّد من وجودك في البيئة من خلال ملاحظة طلب واجهة المستخدم مسبوقة الآن باسم البيئة الخاصة بك، أي
(my_env) $
أصبح بإمكانك الآن pip install
أي حزم مطلوبة وتنفيذ التعليمات البرمجية في هذا النشاط وغير ذلك. ومن المزايا الأخرى أنّه في حال تلف النظام تمامًا أو الوقوع في عطل قد يؤدي إلى تلف تثبيت لغة Python الخاص بك، وما إلى ذلك، سيكون بإمكانك إيقاف هذه البيئة بالكامل بدون التأثير في باقي النظام.
5. تثبيت مكتبة برامج Google APIs للغة Python
يتطلّب هذا الدرس التطبيقي حول الترميز استخدام مكتبة برامج Google APIs للغة Python، لذا يمكنك إمّا أن تكون عملية تثبيت بسيطة أو قد لا تحتاج إلى اتّخاذ أي إجراء على الإطلاق.
ننصحك سابقًا باستخدام Cloud Shell لتيسير تنفيذ ذلك. يمكنك إكمال البرنامج التعليمي بالكامل من متصفح ويب في السحابة. هناك سبب آخر لاستخدام Cloud Shell وهو أنّ العديد من أدوات التطوير الشائعة والمكتبات الضرورية مثبَّتة مسبقًا.
*تثبيت مكتبات البرامج
(اختياري) يمكن تخطّي هذا الإجراء في حال استخدام Cloud Shell أو بيئة محلية سبق لك تثبيت مكتبات العملاء فيها. ما عليك سوى إجراء ذلك في حال تطوير البرامج محليًا ولم تثبِّتها (أو لم تكن متأكدًا من أنّك ثبَّتها). أسهل طريقة هي استخدام pip
(أو pip3
) لتثبيت التطبيق (بما في ذلك تحديث pip
بنفسه إذا لزم الأمر):
pip install -U pip google-api-python-client oauth2client
تأكيد التثبيت
يثبّت هذا الأمر مكتبة البرامج بالإضافة إلى أي حزم تعتمد عليها. سواء كنت تستخدم Cloud Shell أو بيئتك الخاصة، تأكَّد من تثبيت مكتبة البرامج من خلال استيراد الحِزم اللازمة والتأكّد من عدم حدوث أخطاء في الاستيراد (أو نتائج):
python3 -c "import googleapiclient, httplib2, oauth2client"
إذا كنت تستخدم Python 2 بدلاً من ذلك (من Cloud Shell)، ستتلقّى تحذيرًا يفيد بأنّه تم إيقاف دعمها:
******************************************************************************* Python 2 is deprecated. Upgrade to Python 3 as soon as possible. See https://cloud.google.com/python/docs/python2-sunset To suppress this warning, create an empty ~/.cloudshell/no-python-warning file. The command will automatically proceed in seconds or on any key. *******************************************************************************
بمجرد الانتهاء من تنفيذ إجراء الاستيراد "test" بنجاح (بدون أخطاء/إخراج)، فأنت جاهز لبدء التحدث إلى واجهات برمجة تطبيقات Google.
ملخّص
بما أنّ هذا تمرين تطبيقي تمهيدي حول الترميز، سيكون الافتراض أنّك مستخدم جديد لواجهات برمجة تطبيقات Google وGoogle Workspace. إذا كان لديك خبرة من قبل في إنشاء المشاريع وإنشاء تفويض المستخدم "معرّفات عميل OAuth". في هذه الحالة، يمكنك إنشاء مشروع حالي أو إعادة استخدامه، وإنشاء معرّف عميل OAuth حالي أو إعادة استخدامه وتخطّي الوحدتين التاليتين والانتقال مباشرةً إلى قسم "عرض ملفات Drive تطبيق المجلدات" أو الانتقال سريعًا إلى "الاستخدام المتقدّم لوحدة تحكّم المشرف" لمراجعة هذه الخطوات بإرشادات أقل.
6. تحديد المشروع في Cloud Console
يتطلب أحد التطبيقات التي تستخدم واجهات Google APIs مشروعًا. تتم إدارة هذه البرامج في Google Cloud Developers Console أو ببساطة "devconsole". في هذا الدرس التطبيقي حول الترميز، سنستخدم Google Drive API فقط، لذا لدينا رابط سحري (أدناه في الخطوة 1) ينفّذ ما يلي:
- تنقلك إلى وحدة تحكم devconsole
- يرشدك خلال إنشاء مشروع جديد (أو اختيار مشروع حالي)
- تفعيل Drive API تلقائيًا
دع ' s يفعل ذلك!
- انتقِل إلى console.developers.google.com/start/api?id=drive وسجِّل الدخول إلى حسابك على Google.
- إذا لم يكن لديك أيّ مشاريع حتى الآن، ستظهر لك هذه الشاشة لقبول بنود خدمة Google APIs:
بعد قبولك البنود، سيتم إنشاء مشروع جديد باسم "مشروعي" سيتم إنشاؤه، وتفعيل Drive API تلقائيًا. 3- إذا سبق لك إنشاء مشروع (ربما درسك التطبيقي السابق حول الترميز؟)، ستظهر لك هذه الشاشة:
عند النقر على القائمة المنسدلة إنشاء مشروع، اختَر مشروعًا حاليًا أو أنشئ مشروعًا جديدًا.
بعد تحديد اختيارك (مشروع جديد أو حالي)، سيتم تلقائيًا تفعيل Drive API من أجلك. 4. وسيظهر لك هذا التأكيد على أنّه تم تفعيل Drive API:
5- انقر على الانتقال إلى بيانات الاعتماد للانتقال إلى الخطوة التالية.
7. *تفويض طلبات واجهة برمجة التطبيقات (تفويض المستخدم)
يمكن تخطّي هذا القسم إذا سبق لك إنشاء بيانات اعتماد تفويض حساب المستخدم وكنت ملمًّا بهذه العملية. وهي تختلف عن تفويض حساب الخدمة الذي تختلف أسلوبه، لذا يُرجى المتابعة أدناه.
مقدمة عن التفويض (بالإضافة إلى المصادقة بعض)
لإرسال طلبات إلى واجهات برمجة التطبيقات، يجب أن يحصل تطبيقك على التفويض المناسب. المصادقة، وهي كلمة مشابهة تصف بيانات اعتماد تسجيل الدخول، ويمكنك المصادقة على نفسك عند تسجيل الدخول إلى حسابك على Google باستخدام معلومات تسجيل الدخول وكلمة المرور. بعد المصادقة، يمكنك تحديد ما إذا كنت، أو الرمز، معتمدًا مثلاً للوصول إلى البيانات، مثل ملفات الكائن الثنائي الكبير (blob) على Cloud Storage أو ملفات المستخدم الشخصية على Google Drive.
تتوافق واجهات Google APIs مع أنواع عديدة من الأذونات، ولكن أكثرها شيوعًا لمستخدمي Google Workspace API هو تفويض المستخدم لأنّ التطبيق النموذجي في هذا الدرس التطبيقي يصل إلى بيانات المستخدمين النهائيين. وعلى هؤلاء المستخدمين النهائيين منح تطبيقك الإذن بالوصول إلى بياناتهم. يعني هذا أنّ الرمز يجب أن يحصل على بيانات اعتماد OAuth2 لحساب المستخدم.
للحصول على بيانات اعتماد OAuth2 لتفويض المستخدم، يمكنك الرجوع إلى مدير واجهة برمجة التطبيقات واختيار "بيانات الاعتماد" علامة التبويب في شريط التنقل الأيسر:
عند الانتقال إلى هناك، سترى جميع بيانات الاعتماد في ثلاثة أقسام منفصلة:
الأول هو مفاتيح واجهة برمجة التطبيقات، ومعرِّفات عميل OAuth 2.0، وآخر حسابات خدمة OAuth2، نستخدم المعرّف الموجود في المنتصف.
جارٍ إنشاء بيانات الاعتماد
من صفحة "بيانات الاعتماد"، انقر على الزر + إنشاء بيانات اعتماد في الأعلى، والذي سيظهر لك بعد ذلك مربع حوار حيث يمكنك اختيار "معرِّف عميل OAuth":
على الشاشة التالية، لديك إجراءان: ضبط "شاشة الموافقة" في تفويض تطبيقك. واختيار نوع التطبيق:
إذا لم تكن قد ضبطت شاشة موافقة، سيظهر لك التحذير في وحدة التحكّم، وسيكون عليك ضبطها الآن. (يمكنك تخطّي هذه الخطوات التالية إذا سبق أن تم إعداد شاشة الموافقة).
شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth
انقر على "إعداد شاشة الموافقة" حيث تحدد "خارجي" تطبيق (أو "داخلي" إذا كنت عميلاً في Google Workspace [المعروف سابقًا باسم "Google Workspace"]):
لأغراض هذا التمرين، لا يهم أي من اختيارك لأنك لا تنشر عينة من درسك التطبيقي. سيختار معظم المستخدمين "خارجي". ليتم نقله إلى شاشة أكثر تعقيدًا، ولكنك حقًا لا تحتاج سوى إلى إكمال "اسم التطبيق" الحقل في الجزء العلوي:
كل ما تحتاج إليه في الوقت الحالي هو اسم تطبيق فقط، لذا اختَر مستخدمًا يعكس الدرس التطبيقي حول الترميز الذي تجريه، ثم انقر على حفظ.
إنشاء معرِّف عميل OAuth (مصادقة حساب المستخدم)
عُد الآن إلى علامة التبويب "بيانات الاعتماد" لإنشاء معرِّف عميل OAuth2. ستظهر لك هنا مجموعة متنوعة من معرّفات عملاء OAuth التي يمكنك إنشاؤها:
نحن نعمل على تطوير أداة سطر الأوامر، وهي أخرى، لذا اخترها ثم انقر على الزر إنشاء. اختر اسم معرِّف عميل يعكس التطبيق الذي تُنشئه أو استخدِم الاسم التلقائي الذي يكون عادةً "عميل آخر N".
جارٍ حفظ بيانات الاعتماد.
- سيظهر مربع حوار يتضمن بيانات الاعتماد الجديدة. انقر على حسنًا لإغلاق
- مرة أخرى في صفحة "بيانات الاعتماد"، مرِّر لأسفل وصولاً إلى "معرّفات عميل OAuth2". البحث عن رمز التنزيل
والنقر عليه في أسفل يسار معرِّف العميل الذي تم إنشاؤه حديثًا.
- سيؤدي هذا إلى فتح مربّع حوار لحفظ ملف باسم
client_secret-
LONG-HASH-STRING
.apps.googleusercontent.com.json
، على الأرجح في مجلد عمليات التنزيل. لذلك، ننصحك باختصارها إلى اسم أسهل مثلclient_secret.json
(وهو ما يستخدمه التطبيق التجريبي)، ثم حفظه في الدليل/المجلد الذي ستنشئ فيه نموذج التطبيق في هذا الدرس التطبيقي حول الترميز.
ملخّص
باستخدام بيانات الاعتماد المتوفرة، يمكنك الآن الوصول إلى واجهة برمجة تطبيقات Drive من تطبيقك، مع الأخذ في الاعتبار أنّ الغرض من معرِّف عميل OAuth هو أنّه على المستخدمين منح تطبيقك إذنًا للوصول إلى بياناتهم في Google Drive.
ملاحظة: مزيد من التفاصيل حول إنشاء المشاريع وتفعيل واجهات برمجة التطبيقات والحصول على بيانات الاعتماد يدويًا، أي بدون استخدام "المعالج" أعلاه، بعد انتهاء هذا التمرين المعملي لمزيد من الدراسة.
8. عرض ملفات Drive و تطبيق المجلدات
سواء كنت في بيئة التطوير المحلية أو في Cloud Shell، في الدليل نفسه حيث ملف بيانات اعتماد client_id.json
، أنشئ ملف Python جديدًا باسم drive_list.py
وأضِف سطور الرمز أدناه:
from __future__ import print_function
from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
files = DRIVE.files().list().execute().get('files', [])
for f in files:
print(f['name'], f['mimeType'])
بنية التطبيق
هناك ثلاثة أقسام رئيسية لهذا التطبيق:
- لغة Python تستورد وظائف المكتبة
- الحصول على بيانات اعتماد التطبيق
- استرجاع الملف & أسماء المجلدات أنواع MIME في Google Drive للمستخدم العرض
ملاحظة: بعد الانتهاء من هذا الدرس التطبيقي حول الترميز، سنتيح لك الاطّلاع على مزيد من التفاصيل عن الرمز البرمجي ومراجعة شرحه التفصيلي في هذا الدرس لنتمكّن من دراسته بمزيد من التفصيل.
تشغيل التطبيق
أدخِل اسمًا لهذا الملف مثل "drive_list.py
". في المرة الأولى التي تنفّذ فيها النص البرمجي، لن يحصل على إذن الوصول إلى ملفات المستخدم على Drive (ملفاتك). تظهر النتيجة على النحو التالي عند إيقاف التنفيذ مؤقتًا:
$ python3 ./drive_list.py /usr/local/lib/python3.6/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory warnings.warn(_MISSING_FILE_MESSAGE.format(filename)) Your browser has been opened to visit: https://accounts.google.com/o/oauth2/auth?client_id=LONG-STRING.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code If your browser is on a different machine then exit and re-run this application with the command-line parameter --noauth_local_webserver
من بيئة تطوير محلية
يتم إيقاف النص البرمجي لسطر الأوامر مؤقتًا عندما تفتح نافذة متصفح وتعرض لك مربع حوار أذونات OAuth2:
في هذه المرحلة، يطلب التطبيق من المستخدم منح الأذونات التي يطلبها الرمز (من خلال المتغيّر SCOPES
). وفي هذه الحالة، تتعلق بالقدرة على عرض البيانات الوصفية للملف من حساب Google Drive للمستخدم. نعم، في الرمز البرمجي، تظهر نطاقات الأذونات هذه كمعرّفات موارد منتظمة (URI)، ولكن تتم ترجمتها إلى اللغة التي تحدّدها لغتك في نافذة مربّع حوار مسار OAuth2. يجب أن يمنح المستخدم إذنًا صريحًا بالأذونات المطلوبة، وبخلاف ذلك، يجب "مسار التشغيل" سيعرض جزء من الرمز استثناءً، ولن يتابع النص البرمجي أكثر من ذلك.
ملاحظة: لدى بعض المستخدمين متصفّحات متعددة، وقد يظهر طلب التفويض على متصفّح غير مفضَّل. في هذه الحالة، انسخ عنوان URL بالكامل من نافذة المتصفّح التي لا تريد استخدامها، ثم الصقه في شريط العناوين في المتصفّح الذي تريد استخدامه.
من Cloud Shell
إذا لم تكن منتبهًا وشغلت البرنامج في Cloud Shell، فلن تظهر أي نافذة متصفح مفتوحة، ما يؤدي إلى توقفك عن العمل. اكتشِف رسالة بيانات التشخيص المعروضة في أسفل الصفحة بأنّها مخصّصة لك... في ما يلي الرسالة:
If your browser is on a different machine then exit and re-run this application with the command-line parameter --noauth_local_webserver
عند إجراء العملية بهذه الطريقة، ستحصل على الناتج التالي بدلاً من ذلك:
$ python3 drive_list.py --noauth_local_webserver /usr/local/lib/python3.7/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory warnings.warn(_MISSING_FILE_MESSAGE.format(filename)) Go to the following link in your browser: https://accounts.google.com/o/oauth2/auth?client_id=xxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code Enter verification code:
باتّباع التعليمات والانتقال إلى علامة تبويب متصفّح أخرى باستخدام عنوان URL هذا، ستحصل على تجربة مماثلة تقريبًا لما هو موضّح أعلاه لبيئات التطوير المحلية. يكمن الاختلاف الرئيسي في النهاية حيث تحصل على شاشة أخرى مع رمز التحقق لإدخاله في Cloud Shell:
قص هذا الرمز والصقه في النافذة الطرفية.
ملخّص
بعد أن ينقر المستخدم على "السماح" و/أو يتم لصق رمز التحقّق في الطلب، (سيستمر) التطبيق (سيستمر) في العمل، لذا توقَّع ظهور نتائج تتألف من ملفات/مجلدات Drive وأنواع MIME الخاصة بها. في ما يلي مثال من أحد الحسابات الاختبارية:
$ python3 ./drive_list.py Travel expenses application/vnd.google-apps.spreadsheet Gmail Add-ons codelab application/vnd.google-apps.script Google Workspace Developer Intro application/vnd.google-apps.presentation Baseball Sheets application/vnd.google-apps.folder My Resume application/vnd.google-apps.document . . .
في عمليات التنفيذ المتتالية، لن يُطلب منك الحصول على إذن (لأنّه تم تخزينها مؤقتًا من خلال مكتبات المصادقة)، وستنتقل مباشرةً إلى الناتج. هل يهمك رؤية مستنداتك في الوحدة الطرفية للمرة الأولى؟ نعتقد ذلك.
9. الخاتمة
أنت الآن جاهز للتعرّف على مزيد من الميزات حول Drive API أو استكشاف خدمات Google Workspace الأخرى (Gmail و"مستندات Google" و"جداول بيانات Google" و"العروض التقديمية من Google" و"تقويم Google") وغيرها من واجهات Google APIs الأخرى ("خرائط Google" و"إحصاءات Google" وYouTube وغيرها). تهانينا على الوصول إلى النهاية!
يتوفّر الرمز الوارد في هذا الدرس التطبيقي أيضًا في مستودع GitHub على github.com/googlecodelabs/gsuite-apis-intro. (نسعى إلى إبقاء هذا الدرس التطبيقي حول الترميز متزامنًا مع المستودع.) هل نتابع؟ في ما يلي مصادر مختلفة يمكنك الوصول إليها لمساعدتك في فهم المواد التي يتناولها هذا الدرس التطبيقي حول الترميز، أو إذا أردت توسيع ذهنك واستكشاف طُرق أخرى للوصول إلى تقنيات Google آليًا.
كما أوضحنا سابقًا، إذا لم تكن مطوّرًا عاديًا للغة Python، ندعوك إلى إعادة صياغة مثال الدرس التطبيقي هذا بلغة التطوير المفضّلة لديك. تتوفّر مكتبات البرامج للّغات المعتمَدة هنا.
دراسة إضافية
والآن بعد أن أصبحت لديك بعض الخبرة في استخدام Drive API، إليك بعض التمارين المقترَحة لتطوير مهاراتك:
- ملفات ZIP: كتابة تطبيق يحتفظ بنسخة احتياطية من أرشيفات ZIP متعددة على Drive، وفك ضغطها بشكل فوري، بحيث يكون كل اسم ملف ZIP هو اسم المجلد الذي تنتقل إليه هذه الملفات. رصيد إضافي: إتاحة أرشيفات ZIP المتكررة في ملفات ZIP الأخرى مع تضمين مجلدات Drive داخل مجلدات أخرى. وفي حال المغادرة، يمكنك الاطّلاع على نموذج تطبيق Node.js هذا.
- ألبومات الصور: اكتب بداية أداة إنشاء ألبوم الصور التي تحمّل صورًا متعددة إلى Google Drive، مع تنظيمها في مجلدات منفصلة حسب الطابع الزمني رصد الموقع الجغرافي EXTRA CREDIT: العثور على مكتبة لمعالجة الصور مفتوحة المصدر وتركيب جميع الصور في كل مجلد لتمثيل أحداث قد مررت بها (رحلة أو عشاء أو غير ذلك).
- استكشاف Google Cloud Platform: اكتب تطبيقًا يربط بين Google Workspace وGoogle Cloud Platform (GCP) معًا. كتابة أداة تتيح الاحتفاظ بنسخة احتياطية من ملفات الصور من Google Drive إلى Google Cloud Storage (GCS) أخرى في "مساحة تخزين الملفات على السحابة الإلكترونية" الحل. صدق أو لا تصدق، سيكون استخدام GCS أسهل من Drive بسبب مكتبات العملاء المتقدمة.
- تحليل تسجيل: توسيع نطاق الحل إلى رقم 3 من خلال تحليل كل صورة يتم الاحتفاظ بنسخة احتياطية منها من خلال تمريرها إلى Google Cloud Vision API والحصول على أهم (3 و5 و10) "التصنيفات" لما تراه واجهة برمجة التطبيقات في تلك الصور لكل صورة، اكتب صفًا في جدول بيانات Google يحتوي على التحليل من Cloud Vision بالإضافة إلى موقعها الاحتياطي على GCS. إذا توقّفت عن القراءة، يمكنك الاطّلاع على الدرس التطبيقي حول ترميز Python.
10. موارد إضافية
الوثائق
- مستندات Google Drive API (REST API وحزمة تطوير البرامج (SDK) أو واجهة برمجة التطبيقات الأصلية لنظام التشغيل Android)
- مستندات أخرى خاصة بواجهات برمجة التطبيقات في Google Workspace
- مستندات Google APIs الأخرى
- مكتبات برامج Google APIs
- مستندات OAuth2
الفيديوهات ذات الصلة والعامة
- إنشاء مشاريع جديدة في Google API ( مشاركة مدونة وفيديو)
- مراجعة الرموز النموذجية لتفويض Python ( فيديو)
- إدراج ملفاتك في Google Drive ( فيديو ومشاركة مدونة)
- مكتبة فيديوهات واجهة برمجة التطبيقات Google Drive API
- سلسلة فيديوهات Launchpad على الإنترنت (السابقة...)
- سلسلة فيديوهات حول برامج Google Workspace Dev Show
الأخبار و التحديثات
- مدوّنة مطوّري برامج Google Workspace
- مطوِّرو برامج Google Workspace على Twitter (@GSuiteDevs)
- النشرة الإخبارية الشهرية للمطوّرين في Google Workspace
الدروس التطبيقية الأخرى حول الترميز
مبتدئ
- [برمجة التطبيقات] مقدّمة حول "برمجة تطبيقات Google"
مزايا متوسطة
- [برمجة التطبيقات] أداة سطر الأوامر "برمجة تطبيقات CLASP"
- [برمجة تطبيقات Google] إضافات Gmail
- [برمجة التطبيقات] إضافة "مستندات Google" واجهة برمجة تطبيقات اللغة الطبيعية في Google Cloud Platform
- [برمجة التطبيقات] إطار عمل برنامج تتبُّع Hangouts Chat
- [REST APIs] أداة إعداد التقارير المخصَّصة (Sheets API)
- [واجهات برمجة تطبيقات RST] أداة إنشاء شرائح مخصّصة لأداة تحليل BigQuery لترخيص GitHub (واجهات برمجة تطبيقات BigQuery و"العروض التقديمية من Google")
متقدّمة
- [واجهات برمجة تطبيقات REST] سير عمل معالجة الصور في السحابة الإلكترونية (Drive وCloud Storage وCloud Vision وواجهات برمجة تطبيقات "جداول بيانات Google")
التطبيقات المرجعية
- أداة التحويل من Markdown إلى Google Slides (Slides REST API)
11. *شرح تفصيلي للتطبيق
يمكن استخدام هذا القسم الاختياري كدراسة ذاتية بعد انتهاء الجلسة لسد أي فجوات قد نشأت أو لإجراء المزيد من الأبحاث.
لغة Python تستورد وظائف المكتبة
from __future__ import print_function
from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
- تتيح عبارة
import
الأولى تشغيل هذا الرمز في Python 2، ويمكن إسقاطها بالكامل إذا كنت تستخدم Python 3 فقط. - أحد إرشادات نمط بايثون هو الفصل بين المكتبة القياسية وعمليات استيراد الوحدات التابعة لجهات خارجية، وهذا ما يعنيه السطر الفارغ.
- تجلب الواردات الثلاثة التالية الفئات الضرورية من مكتبة عملاء Google APIs... نحتاج جميعًا إلى كتابة هذا التطبيق. باختصار، إليك ما يفعلونه:
- يركّز
googleapiclient
على الاتصال بواجهات Google APIs. - يوفِّر
httplib2
برنامج HTTP حتى يستخدمه التطبيق. - يساعدنا
oauth2client
في إدارة بيانات اعتماد OAuth2.
التفويض والحصول على بيانات اعتماد التطبيق
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
- التطبيق
SCOPES
هو الأذونات التي سيطلبها التطبيق من المستخدم الذي يشغّله. للحفاظ على أمان بيانات المستخدمين، لا يمكن تشغيل التطبيقات بدون الحصول على إذن - من أفضل الممارسات استخدام الأذونات الأكثر تقييدًا التي يحتاج إليها تطبيقك ليعمل. لماذا؟
- أليس الأمر مزعجًا عندما يطلب التطبيق عددًا كبيرًا من الأذونات عند تثبيته أو تشغيله؟ خمين ماذا؟ أنت الآن على الجانب الآخر من العملة، وتطلب من المستخدمين الحصول على جميع هذه الأذونات. ويؤدي استخدام نطاقات أكثر تقييدًا إلى شعور المستخدمين بالرضا حيال تثبيت تطبيقك لأنك تطلب تقليل إمكانية الوصول.
- تبدو معظم النطاقات مثل عناوين URL الطويلة، ولا يُستثنى من ذلك نطاق البيانات الوصفية في Drive.
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
- يجب توفّر رمز مميّز حتى تتمكّن التطبيقات من الاتصال بخوادم Google. في ملف تخزين الرموز المميّزة،
storage.json
، سيتم حفظ الرموز المميّزة الصالحة الصادرة من Google. وفي حال عدم حفظ هذه الرموز المميّزة، عليك إعادة تفويض تطبيقك في كل مرة يتم فيها تشغيله.
store = file.Storage('storage.json')
- يتحقّق هذا التطبيق أولاً مما إذا كانت لدينا بيانات اعتماد صالحة مخزّنة حاليًا (يُرجى الاطّلاع على عبارة
if
الشرطية).
creds = store.get()
if not creds or creds.invalid:
- إذا لم يكن لديك بيانات اعتماد أو انتهت صلاحيتها، يجب إنشاء مسار جديد للتفويض [عبر
oauth2client.client.flow_from_clientsecrets()
] من معرِّف عميل OAuth. سر في ملفclient_id.json
الذي نزّلته].
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
- بعد أن يبدأ تطبيقك، يجب تنفيذه لعرض شاشة أذونات OAuth2 للمستخدم [عبر
oauth2client.tools.run_flow()
] الموضحة أعلاه والموضّحة أعلاه.
creds = tools.run_flow(flow, store)
- بالنقر على السماح، يوافق المستخدمون على وصول تطبيقك إلى البيانات الوصفية لملفات Google Drive، وترجع خوادم Google رموزًا مميزة للوصول إلى واجهة برمجة التطبيقات. ويتم عرضها على أنّها
creds
وتخزينها مؤقتًا في ملفstorage.json
. - في هذه المرحلة، يمتلك تطبيقك الآن بيانات اعتماد صالحة لإجراء طلبات البيانات من واجهة برمجة التطبيقات. يؤدي طلب
googleapiclient.discovery.build()
إلى إنشاء نقطة نهاية خدمة لواجهة برمجة التطبيقات التي تستخدمها. - لاستخدام
build()
، أدخِل اسم واجهة برمجة التطبيقات ('drive'
). النسخة المطلوبة (حاليًا'v3'
). - المَعلمة النهائية هي برنامج HTTP يمكن استخدامه في طلبات البيانات المشفّرة من واجهة برمجة التطبيقات.
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
جلب & عرض أول 100 ملف أو مجلد على Drive MIMEtypes)
files = DRIVE.files().list().execute().get('files', [])
for f in files:
print(f['name'], f['mimeType'])
- يستدعي السطر التالي من الرمز الطريقة
list()
في مجموعةfiles()
حتى تتمكن واجهة برمجة تطبيقات Drive من إنشاء الطلب، وهو ما يتم استدعاؤه على الفور باستخدامexecute()
. يتم إرجاعdict
في Python نطلب منه المفتاح'files'
للحصول على الملف 100 أسماء المجلدات من Google Drive للمستخدم (أو أقل إذا كان لديك ملفات أقل). - لماذا 100؟ هذا هو الرقم التلقائي من
DRIVE.files().list()
. إذا أردت تغيير هذا الرقم، على سبيل المثال 10 ملفات فقط أو 1,000 ملف، أضِف المَعلمةpageSize
إلى طلبك:DRIVE.files().list(pageSize=10)
. في ما يلي المستندات التي تتضمّن المزيد من الخيارات. - يدور الجزء الأخير من البرنامج النصي داخل كل ملف ويعرض أسمائه أنواع MIME للملفات.
لقد كتبت الآن أول تطبيق لك يستخدم واجهة برمجة التطبيقات Google REST API... تهانينا! بصرف النظر عن عمليات الاستيراد ورمز التفويض، لا يمثّل هذا النص البرمجي سوى سطرين من الرموز (ما يظهر أعلاه). تعمل معظم واجهات Google APIs بطريقة مماثلة، ولن تحتاج إلا إلى إنشاء نقاط نهاية للخدمة لكل نقطة نهاية تريد استخدامها.
استخدام أكثر من واجهة Google API واحدة في تطبيق واحد
نعم، يمكنك بالتأكيد استخدام أكثر من واجهة برمجة تطبيقات واحدة في التطبيق نفسه. في ما يلي مقتطف رمز Python لتطبيق يعيد استخدام عميل HTTP نفسه وينشئ نقاط نهاية خدمة على ثلاثة واجهات برمجة تطبيقات من Google APIs (نعم، مع 3 واجهات SCOPES
مختلفة أيضًا):
SCOPES = (
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/spreadsheets.readonly',
'https://www.googleapis.com/auth/presentations',
)
. . .
HTTP = creds.authorize(Http())
DRIVE = discovery.build('drive', 'v3', http=HTTP)
SHEETS = discovery.build('sheets', 'v4', http=HTTP)
SLIDES = discovery.build('slides', 'v1', http=HTTP)
نتخيل أن هذا الرمز يمكن أن يكون جزءًا من تطبيق ينشئ العديد من مجموعات الشرائح (واجهة برمجة تطبيقات العروض التقديمية) استنادًا إلى بيانات جدول البيانات (Sheets API) ويستخدم نموذج شريحة يتم نسخه (Drive API) لكل مجموعة شرائح تم إنشاؤها. على الرغم من عدم توفّر مثل هذا التطبيق، من المفترض أن تكون قادرًا على إنشاء تطبيق مشابه باستخدام نموذجَين حاليَين أنشأهما فريق Google Workspace كوحدات أساسية:
- استبدال النص صور في الشرائح ( مشاركة مدونة والفيديو) - تستخدم Drive API لنسخ مجموعة من نماذج الشرائح ثم تستخدم واجهة برمجة تطبيقات "العروض التقديمية من Google" لتغيير النص العناصر النائبة للصور
- إنشاء الشرائح من بيانات جدول البيانات ( مشاركة المدونة والفيديو) — لقراءة البيانات من جدول البيانات (Sheets API) وإنشاء الشرائح (واجهة برمجة تطبيقات العروض التقديمية) استنادًا إلى تلك البيانات
التحدي الذي تواجهه: إنشاء هذا التطبيق!
12. *الاستخدام المتقدم لوحدة تحكم المشرف
في هذا القسم الاختياري، سنصف كيفية إنشاء مشاريع في devconsole وتفعيل واجهات برمجة التطبيقات والحصول على بيانات الاعتماد، كل ذلك بدون استخدام المعالج على النحو الوارد أعلاه في الدرس التطبيقي حول الترميز. وهذه الميزة مخصّصة للمستخدمين المتوسطين الذين يشعرون بالراحة عند إجراء ذلك يدويًا أو يرغبون في معرفة كيفية إجراء ذلك.
تحديد المشروع في Cloud Console
في أي وقت تكتب فيه تطبيقًا باستخدام Google APIs، تحتاج إلى مشروع. ويمكنك إعادة استخدام مشروع حالي أو إنشاء مشروع جديد. ويحدث ذلك في Cloud Console. وتوفر بعض الدروس التطبيقية حول الترميز رابطًا سحريًا (على سبيل المثال، مثل معالج إعداد) يساعدك في التقدم بسرعة من خلال تخطي العديد من الخطوات المطلوبة. ولكن ليس كلها، لذلك فهي مصممة لأن تكون تعليمات عامة حول كيفية إنشاء المشروعات.
يمكنك إنشاء مشاريع من معظم الشاشات في Cloud Console، طالما سجّلت الدخول باستخدام بيانات اعتماد Google وترى القائمة المنسدلة للمشروع في أعلى وحدة التحكّم. تجدر الإشارة إلى أنّ معظم لقطات الشاشة هنا مأخوذة من "مدير واجهة برمجة التطبيقات"، والمعروف أيضًا باسم Developers Console (يمكن الوصول إليها بسهولة من خلال النقر على "مدير واجهة برمجة التطبيقات" في شريط التنقّل الأيمن أو توجيه المتصفّح مباشرةً إلى console.developers.google.com.
- إذا لم يكن لديك أي مشاريع إلى الآن، قد يتم نقلك إلى...
- صفحة لوحة البيانات:
- صفحة المكتبة:
- أو صفحة فارغة تمامًا:
إذا حدثت المشكلة الثالثة، ما عليك سوى إعادة تحميل المتصفّح للانتقال إلى صفحة المكتبة.
- سواء كنت في صفحة لوحة البيانات أو المكتبة، انقر على أداة اختيار المشاريع في أعلى الصفحة:
.
- بعد ذلك، سيظهر لك مربّع حوار أداة الاختيار. انقر على الرمز "+" على اليسار لإنشاء مشروع جديد:
- بعد النقر على الرمز "+"، ستظهر صفحة مشروع جديد. تحصل جميع حسابات المستهلكين على 12 مشروعًا تلقائيًا. قبل إنشاء مشروعك الأول، يجب قبول بنود خدمة Google APIs:
بعد القيام بذلك، تختفي أسئلة طلب البريد الإلكتروني وبنود الخدمة عند إنشاء مشروعات مستقبلية:
5- إذا كنت قد أنشأت مشروعًا واحدًا على الأقل في الماضي، فسيتم نقلك إلى لوحة التحكم لآخر مشروع عملت عليه بعد تسجيل الدخول. بعد ذلك، أنشئ مشروعًا جديدًا مثلما تختار اختيار مشروع > +. 6- بعد إنشاء مشروعك الجديد، ستعود إلى صفحة لوحة البيانات:
لقد أنشأت الآن مشروعًا بنجاح ويمكنك المتابعة من خلال اختيار واجهات برمجة التطبيقات التي تريد استخدامها لمشروعك.
تفعيل واجهات برمجة تطبيقات Google
قبل أن تتمكن من البدء في استخدام Google APIs، يجب تفعيلها. يوضح المثال أدناه الإجراءات التي ستتخذها لتفعيل Cloud Vision API. يُحتمل أنّك تستخدم في هذا الدرس التطبيقي حول الترميز واجهة برمجة تطبيقات واحدة أو أكثر، وعليك اتّباع خطوات مشابهة لتفعيلها قبل استخدامها.
من Cloud Shell
باستخدام Cloud Shell، يمكنك تفعيل واجهة برمجة التطبيقات باستخدام الأمر التالي:
gcloud services enable vision.googleapis.com
من Cloud Console
يمكنك أيضًا تفعيل Vision API في "مدير واجهات برمجة التطبيقات". من Cloud Console، انتقِل إلى مدير واجهة برمجة التطبيقات واختَر "المكتبة".
في شريط البحث، ابدأ بكتابة "vision" ثم حدد Vision API عند ظهورها. قد يبدو الأمر كما يلي أثناء الكتابة:
اختَر Cloud Vision API لإظهار مربّع الحوار الذي يظهر لك أدناه، ثم انقر على "تفعيل". الزر:
التكلفة
على الرغم من إمكانية استخدام العديد من واجهات Google APIs بدون رسوم، فإنّ استخدام Google Cloud Platform (المنتجات وواجهات برمجة التطبيقات) ليس مجانيًا. عند تفعيل Vision API (كما هو موضّح أعلاه)، قد يُطلب منك إنشاء حساب فوترة نشط. يجب أن يشير المستخدم إلى معلومات تسعير Vision API قبل تفعيلها. ضع في اعتبارك أن بعض منتجات Google Cloud Platform (GCP) تتميز بخدمة "مجانية دائمًا" التي يجب تجاوزها لتحمل تكلفة الفوترة. لأغراض الدرس التطبيقي حول الترميز، يتم احتساب كل طلب يتم إرساله إلى Vision API ضمن ذلك المستوى المجاني، وما دمت ضمن الحدود القصوى الإجمالية (خلال كل شهر)، من المفترض ألا يتم تحصيل أي رسوم منك.
تتضمن بعض واجهات Google APIs يشمل استخدام Google Workspace اشتراكًا شهريًا، لذلك لا تتوفّر فوترة مباشرة عند استخدام واجهات برمجة التطبيقات في Gmail وGoogle Drive و"تقويم Google" و"مستندات Google" و"جداول بيانات Google" و"العروض التقديمية من Google"، على سبيل المثال. تتم فوترة منتجات Google المختلفة بشكل مختلف، لذا احرص على الرجوع إلى وثائق واجهة برمجة التطبيقات للحصول على هذه المعلومات.
ملخّص
في هذا الدرس التطبيقي، ما عليك سوى تفعيل Google Drive API، لذا اتّبِع التعليمات الواردة أعلاه وابحث عن "Drive". المتابعة بعد تفعيلها
تفويض طلبات البيانات من واجهة برمجة التطبيقات (تفويض المستخدم)
مقدمة عن التفويض (بالإضافة إلى المصادقة بعض)
لإرسال طلبات إلى واجهات برمجة التطبيقات، يجب أن يحصل تطبيقك على التفويض المناسب. المصادقة، وهي كلمة مشابهة تصف بيانات اعتماد تسجيل الدخول، ويمكنك المصادقة على نفسك عند تسجيل الدخول إلى حسابك على Google باستخدام معلومات تسجيل الدخول وكلمة المرور. بعد المصادقة، يمكنك تحديد ما إذا كنت، أو الرمز، معتمدًا مثلاً للوصول إلى البيانات، مثل ملفات الكائن الثنائي الكبير (blob) على Cloud Storage أو ملفات المستخدم الشخصية على Google Drive.
تتوافق واجهات Google APIs مع أنواع عديدة من الأذونات، ولكن أكثرها شيوعًا لمستخدمي Google Workspace API هو تفويض المستخدم لأنّ التطبيق النموذجي في هذا الدرس التطبيقي يصل إلى بيانات المستخدمين النهائيين. وعلى هؤلاء المستخدمين النهائيين منح تطبيقك الإذن بالوصول إلى بياناتهم. يعني هذا أنّ الرمز يجب أن يحصل على بيانات اعتماد OAuth2 لحساب المستخدم.
للحصول على بيانات اعتماد OAuth2 لتفويض المستخدم، يمكنك الرجوع إلى مدير واجهة برمجة التطبيقات واختيار "بيانات الاعتماد" علامة التبويب في شريط التنقل الأيسر:
عند الانتقال إلى هناك، سترى جميع بيانات الاعتماد في ثلاثة أقسام منفصلة:
الأول هو مفاتيح واجهة برمجة التطبيقات، ومعرِّفات عميل OAuth 2.0، وآخر حسابات خدمة OAuth2، نستخدم المعرّف الموجود في المنتصف.
جارٍ إنشاء بيانات الاعتماد
من صفحة "بيانات الاعتماد"، انقر على الزر + إنشاء بيانات اعتماد في الأعلى، والذي سيظهر لك بعد ذلك مربع حوار حيث يمكنك اختيار "معرِّف عميل OAuth":
على الشاشة التالية، لديك إجراءان: ضبط "شاشة الموافقة" في تفويض تطبيقك. واختيار نوع التطبيق:
إذا لم تكن قد ضبطت شاشة موافقة، سيظهر لك التحذير في وحدة التحكّم، وسيكون عليك ضبطها الآن. (يمكنك تخطّي هذه الخطوات التالية إذا سبق أن تم إعداد شاشة الموافقة).
شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth
انقر على "إعداد شاشة الموافقة" حيث تحدد "خارجي" تطبيق (أو "داخلي" إذا كنت أحد عملاء Google Workspace):
لأغراض هذا التمرين، لا يهم أي من اختيارك لأنك لا تنشر عينة من درسك التطبيقي. سيختار معظم المستخدمين "خارجي". ليتم نقله إلى شاشة أكثر تعقيدًا، ولكنك حقًا لا تحتاج سوى إلى إكمال "اسم التطبيق" الحقل في الجزء العلوي:
كل ما تحتاج إليه في الوقت الحالي هو اسم تطبيق فقط، لذا اختَر مستخدمًا يعكس الدرس التطبيقي حول الترميز الذي تجريه، ثم انقر على حفظ.
إنشاء معرِّف عميل OAuth (مصادقة حساب المستخدم)
عُد الآن إلى علامة التبويب "بيانات الاعتماد" لإنشاء معرِّف عميل OAuth2. ستظهر لك هنا مجموعة متنوعة من معرّفات عملاء OAuth التي يمكنك إنشاؤها:
نحن نعمل على تطوير أداة سطر الأوامر، وهي أخرى، لذا اخترها ثم انقر على الزر إنشاء. اختر اسم معرِّف عميل يعكس التطبيق الذي تُنشئه أو استخدِم الاسم التلقائي الذي يكون عادةً "عميل آخر N".
جارٍ حفظ بيانات الاعتماد.
- سيظهر مربع حوار يتضمن بيانات الاعتماد الجديدة. انقر على حسنًا لإغلاق
- مرة أخرى في صفحة "بيانات الاعتماد"، مرِّر لأسفل وصولاً إلى "معرّفات عميل OAuth2". البحث عن رمز التنزيل
والنقر عليه في أسفل يسار معرِّف العميل الذي تم إنشاؤه حديثًا.
- سيؤدي هذا إلى فتح مربّع حوار لحفظ ملف باسم
client_secret-
LONG-HASH-STRING
.apps.googleusercontent.com.json
، على الأرجح في مجلد عمليات التنزيل. لذلك، ننصحك باختصارها إلى اسم أسهل مثلclient_secret.json
(وهو ما يستخدمه التطبيق التجريبي)، ثم حفظه في الدليل/المجلد الذي ستنشئ فيه نموذج التطبيق في هذا الدرس التطبيقي حول الترميز.