مصادقة تطبيقات Chat وطلبات Google Chat API واعتمادهما

المصادقة والترخيص هي آليات تستخدم للتحقق من الهوية والوصول إلى الموارد، على التوالي. يوضّح هذا المستند آلية عمل المصادقة والتفويض لتطبيقات Chat وطلبات Chat API.

نظرة عامة على العملية

يوضِّح المخطّط التالي الخطوات عالية المستوى للمصادقة والتفويض في Google Chat:

الخطوات العالية المستوى لمصادقة Google Chat وتفويضها
الشكل 1. خطوات عالية المستوى لمصادقة Google Chat وتفويضه

  1. ضبط مشروع على Google Cloud وتفعيل Chat API وضبط تطبيق Chat: أثناء التطوير، يمكنك إنشاء مشروع على Google Cloud. في مشروع Google Cloud، يمكنك تفعيل Chat API وضبط تطبيق Chat وإعداد المصادقة. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة التطوير على Google Workspace وإنشاء تطبيق Chat.

  2. Call Chat API: عندما يطلب تطبيقك واجهة برمجة تطبيقات Chat، يُرسِل بيانات اعتماد المصادقة إلى Chat API. وفي حال تمت مصادقة تطبيقك باستخدام حساب خدمة، يتم إرسال بيانات الاعتماد كجزء من رمز التطبيق. إذا كان تطبيقك يتطلب استدعاء واجهة برمجة تطبيقات Chat باستخدام مصادقة مستخدم لم يتم منحها بعد، سيطلب المستخدم تسجيل الدخول.

  3. طلب الموارد: يطلب تطبيقك الحصول على إذن الوصول باستخدام النطاقات التي تحدِّدها أثناء إعداد المصادقة.

  4. طلب الموافقة: في حال كان تطبيقك قيد المصادقة كمستخدم، تعرض Google شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth ليتمكّن المستخدم من تحديد ما إذا كان يريد منح تطبيقك إذن الوصول إلى البيانات المطلوبة. ولا تتطلب المصادقة باستخدام حساب الخدمة موافقة المستخدم.

  5. إرسال طلب موافَق عليه للحصول على موارد: في حال وافق المستخدم على نطاقات التفويض، سيجمع تطبيقك بيانات الاعتماد للنطاقات التي وافق عليها المستخدم في الطلب. يتم إرسال الطلب إلى خادم تفويض Google للحصول على رمز الدخول.

  6. إرجاع Google لرمز الدخول: يحتوي رمز الدخول على قائمة بالنطاقات الممنوحة. إذا كانت قائمة النطاقات المعروضة أكثر تقييدًا من النطاقات المطلوبة، سيوقف تطبيقك أي ميزات محدودة بالرمز المميّز.

  7. الوصول إلى الموارد المطلوبة: يستخدم تطبيقك رمز الدخول من Google لاستدعاء Chat API والوصول إلى موارد Chat API.

  8. الحصول على الرمز المميّز لإعادة التحميل (اختياري): إذا كان يجب أن يصل تطبيقك إلى واجهة برمجة تطبيقات Google Chat بعد استخدام رمز دخول واحد منذ إنشائه، يمكن أن يحصل التطبيق على رمز مميّز للتحديث. لمزيد من المعلومات، يُرجى الاطّلاع على استخدام OAuth 2.0 للوصول إلى Google APIs.

  9. طلب مزيد من الموارد: إذا كان تطبيقك بحاجة إلى مزيد من الوصول، سيطلب من المستخدم منح نطاقات جديدة، ما يؤدي إلى إنشاء طلب جديد للحصول على رمز دخول (الخطوات من 3 إلى 6).

عندما تتطلب تطبيقات Chat المصادقة

يمكن لتطبيقات Chat إرسال الرسائل استجابةً لتفاعل المستخدِم أو بشكل غير متزامن. ويمكنهم أيضًا إكمال المهام نيابةً عن المستخدم، مثلاً إنشاء مساحة Chat أو الحصول على قائمة بالمستخدمين في مساحة Chat.

لا تطلب تطبيقات Chat المصادقة للاستجابة إلى تفاعل المستخدم، ما لم يستدعي تطبيق Chat Chat API أو واجهة برمجة تطبيقات أخرى من Google API أثناء معالجة الردّ.

لإرسال رسائل غير متزامنة أو تنفيذ مهام نيابةً عن المستخدم، تُجري تطبيقات Chat طلبات RESTful إلى Chat API، والتي تتطلّب المصادقة والتفويض.

لا تتطلب الردود على تفاعلات المستخدم المصادقة

لا تحتاج تطبيقات Google Chat إلى إجراء مصادقة بصفتك مستخدمًا أو تطبيق Chat لتلقّي أحداث التفاعل والاستجابة لها بشكل متزامن.

تتلقّى تطبيقات Google Chat أحداث التفاعل كلما تفاعل المستخدم مع تطبيق Chat أو استدعيته، بما في ذلك ما يلي:

يوضّح المخطّط التالي تسلسل الطلبات والاستجابة بين مستخدم على Chat وتطبيق Chat:

ما مِن تفويض مطلوب لأحداث التفاعل مع تطبيق Chat.
الشكل 2.لا تتطلب أحداث التفاعل مع تطبيقات Chat مصادقة.

  1. يرسل المستخدم رسالة إلى تطبيق Chat في Google Chat.
  2. يُعيد Google Chat توجيه الرسالة إلى التطبيق.
  3. يتلقى التطبيق الرسالة ويعالجها ويعرض ردًا على Google Chat.
  4. يعرض Google Chat الرد للمستخدم أو في مساحة.

يتكرر هذا التسلسل لكل حدث تفاعل مع تطبيق Chat.

تتطلب الرسائل غير المتزامنة مصادقة

تظهر الرسائل غير المتزامنة عندما يُجري أحد تطبيقات Chat طلبًا إلى Chat API، ما يتطلب المصادقة والتفويض.

من خلال طلب البيانات من Chat API، يمكن لتطبيقات Chat نشر الرسائل إلى Google Chat أو إكمال المهام والوصول إلى البيانات نيابةً عن المستخدم. على سبيل المثال، بعد رصد انقطاع في الخادم، يمكن لتطبيق Chat استدعاء Chat API لإجراء ما يلي:

  • أنشِئ مساحة Chat مخصّصة للتحقيق في انقطاع الخدمة وإصلاحه.
  • إضافة مستخدمين إلى مساحة Chat
  • يمكنك نشر رسالة على مساحة Chat لتقديم تفاصيل حول انقطاع الخدمة.

يعرض المخطّط التالي تسلسل رسائل غير متزامن بين تطبيق Chat ومساحة Chat:

المصادقة مطلوبة للرسائل غير المتزامنة
الشكل 3. ويجب مصادقة الرسائل غير المتزامنة.

  1. ينشئ تطبيق Chat رسالة من خلال استدعاء Chat API باستخدام الطريقة spaces.messages.create، ويتضمن بيانات اعتماد المستخدم في طلب HTTP.
  2. يصادق Google Chat على تطبيق Chat باستخدام حساب الخدمة أو بيانات اعتماد المستخدم.
  3. يعرض Google Chat رسالة التطبيق في مساحة محدَّدة على Chat.

نطاقات Chat API

اضبط شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth واختَر النطاقات لتحديد المعلومات التي يتم عرضها للمستخدمين ومراجعي التطبيقات، وتسجيل تطبيقك لتتمكّن من نشره لاحقًا.

لتحديد مستوى الوصول الممنوح لتطبيقك، عليك تحديد نطاقات التفويض وتعريفها. نطاق التفويض هو سلسلة معرّف موارد منتظم (URI) لـ OAuth 2.0 تحتوي على اسم تطبيق Google Workspace ونوع البيانات التي يصل إليها ومستوى الوصول.

النطاقات غير الحسّاسة

رمز النطاق الوصف
https://www.googleapis.com/auth/chat.bot

لا يتوافق النطاق chat.bot إلا مع حسابات الخدمة. لا يمكنك المصادقة باستخدام بيانات اعتماد المستخدم أو التفويض على مستوى النطاق باستخدام هذا النطاق.

يسمح هذا الخيار للتطبيقات في Chat بعرض المحادثات وإرسال الرسائل. يمنح إمكانية الوصول إلى جميع الميزات المتاحة لتطبيقات Chat.

النطاقات الحساسة

رمز النطاق الوصف
https://www.googleapis.com/auth/chat.spaces يمكنك إنشاء محادثات ومساحات وعرض البيانات الوصفية أو تعديلها (بما في ذلك إعدادات السجلّ) في Chat.
https://www.googleapis.com/auth/chat.spaces.create إنشاء محادثات جديدة في Chat
https://www.googleapis.com/auth/chat.spaces.readonly الاطّلاع على المحادثات والمساحات في Chat
https://www.googleapis.com/auth/chat.memberships الاطّلاع على المشاركين في المحادثات في Chat وإضافتهم وإزالتهم
https://www.googleapis.com/auth/chat.memberships.app إضافة نفسه إلى المحادثات في Google Chat وإزالته منها
https://www.googleapis.com/auth/chat.memberships.readonly الاطّلاع على المشاركين في محادثات Chat
https://www.googleapis.com/auth/chat.messages.create إنشاء الرسائل وإرسالها في Chat
https://www.googleapis.com/auth/chat.messages.reactions الاطّلاع على التفاعلات مع الرسائل وإضافتها وحذفها في Chat
https://www.googleapis.com/auth/chat.messages.reactions.create يمكنك إضافة تفاعلات على رسالة في Chat.
https://www.googleapis.com/auth/chat.messages.reactions.readonly الاطّلاع على التفاعلات مع رسالة في Chat

النطاقات المحظورة

رمز النطاق الوصف
https://www.googleapis.com/auth/chat.delete حذف المحادثات والمساحات وإزالة إمكانية الوصول إلى الملفات المرتبطة بها في Chat
https://www.googleapis.com/auth/chat.import استيراد المساحات والرسائل والاشتراكات إلى Chat لمزيد من المعلومات، يُرجى الاطّلاع على تفويض تطبيقات Chat لاستيراد البيانات.
https://www.googleapis.com/auth/chat.messages عرض الرسائل وإنشاؤها وإرسالها وتعديلها وحذفها وإضافة التفاعلات مع الرسائل وعرضها وحذفها
https://www.googleapis.com/auth/chat.messages.readonly عرض الرسائل والتفاعلات في Chat

تشير النطاقات في الجداول السابقة إلى مستوى حساسيتها، وفقًا للتعريفات التالية:

وإذا كان تطبيقك يتطلب الوصول إلى أي من واجهات Google APIs الأخرى، يمكنك إضافة هذه النطاقات أيضًا. لمزيد من المعلومات عن نطاقات Google API، يُرجى الاطّلاع على استخدام OAuth 2.0 للوصول إلى Google APIs.

لمزيد من المعلومات عن نطاقات واجهات برمجة تطبيقات Google Workspace، يُرجى الاطّلاع على ضبط شاشة موافقة OAuth واختيار النطاقات.

أنواع المصادقة المطلوبة

هناك طريقتان يمكن من خلالهما لتطبيقات Chat إجراء المصادقة والتفويض باستخدام Chat API، وهما: بيانات اعتماد المستخدم أو حسابات الخدمة.

باستخدام تفويض بيانات اعتماد المستخدم، يمكن لتطبيق Chat الوصول إلى بيانات المستخدم وإكمال الإجراءات نيابةً عنه. تحدد نطاقات OAuth البيانات والإجراءات المسموح بها. ومع ذلك، لا يمكن نشر تطبيقات Chat هذه بشكل علني. لمزيد من المعلومات، راجِع نشر تطبيقات Google Chat.

عند الحصول على تفويض التطبيق، يصل تطبيق Chat إلى واجهة برمجة التطبيقات كتطبيق باستخدام بيانات اعتماد حساب الخدمة. تستخدم ميزة تفويض التطبيق دائمًا نطاق تفويض chat.bot

إذا كنت مشرف نطاق، يمكنك منح تفويض مرجع على مستوى النطاق لتفويض حساب خدمة التطبيق بالوصول إلى بيانات المستخدمين بدون مطالبة كل مستخدم بتقديم الموافقة. بعد ضبط التفويض على مستوى النطاق، يمكنك إجراء طلبات بيانات من واجهة برمجة التطبيقات باستخدام حساب الخدمة لانتحال هوية حساب مستخدم. على الرغم من استخدام حساب الخدمة للمصادقة، فإنّ التفويض على مستوى النطاق ينتحل هوية المستخدم وبالتالي يتم اعتباره مصادقة المستخدم. يمكن لأي وظيفة تتطلب مصادقة المستخدم استخدام التفويض على مستوى النطاق.

عند تحديد نوع بيانات الاعتماد الذي سيتم استخدامه لطلب معيّن من واجهة برمجة التطبيقات، يُرجى مراعاة أنّ بعض طرق واجهة برمجة التطبيقات لا تتيح سوى نوع معيّن من بيانات الاعتماد. إذا كانت طريقة واجهة برمجة التطبيقات توفر كلتا بيانات الاعتماد، يؤثر نوع بيانات الاعتماد المستخدمة في الاستدعاء على النتيجة التي يتم عرضها:

  • باستخدام إذن التطبيق، لا تعرض الطرق سوى الموارد التي يمكن للتطبيق الوصول إليها.
  • باستخدام إذن المستخدم، لا تعرض الطرق سوى الموارد التي يمكن للمستخدم الوصول إليها في واجهة مستخدم Chat.

على سبيل المثال، يؤدي استدعاء الإجراء ListSpaces باستخدام إذن التطبيق إلى عرض قائمة المساحات التي ينتمي إليها التطبيق. يؤدي استدعاء ListSpaces مع تفويض المستخدم إلى عرض قائمة المساحات التي ينتمي إليها المستخدم. من الناحية العملية، قد يستخدم تطبيقك كلا النوعين من الأذونات عند استدعاء واجهة برمجة تطبيقات Chat، اعتمادًا على الوظيفة التي تريدها.

بالنسبة إلى طلبات البيانات غير المتزامنة من Chat API

يسرد الجدول التالي طرق واجهة برمجة تطبيقات Chat ونطاقات التفويض المعتمدة لها:

الطريقة دعم مصادقة المستخدم دعم مصادقة التطبيقات نطاقات التفويض المتوافقة
المساحات  
إنشاء مساحة باستخدام مصادقة المستخدم:
  • chat.spaces.create
  • chat.spaces
  • chat.import
إعداد مساحة باستخدام مصادقة المستخدم:
  • chat.spaces.create
  • chat.spaces
الحصول على مساحة باستخدام مصادقة المستخدم:
  • chat.spaces.readonly
  • chat.spaces
باستخدام مصادقة التطبيقات:
  • chat.bot
مساحات القائمة باستخدام مصادقة المستخدم:
  • chat.spaces.readonly
  • chat.spaces
باستخدام مصادقة التطبيقات:
  • chat.bot
تعديل مساحة باستخدام مصادقة المستخدم:
  • chat.spaces
  • chat.import
حذف مساحة باستخدام مصادقة المستخدم:
  • chat.delete
  • chat.import
إكمال عملية استيراد مساحة باستخدام مصادقة المستخدم:
  • chat.import
البحث عن رسالة مباشرة باستخدام مصادقة المستخدم:
  • chat.spaces.readonly
  • chat.spaces
باستخدام مصادقة التطبيقات:
  • chat.bot
الأعضاء  
إنشاء اشتراك داعم باستخدام مصادقة المستخدم:
  • chat.memberships
  • chat.memberships.app
  • chat.import
الاشتراك باستخدام مصادقة المستخدم:
  • chat.memberships.readonly
  • chat.memberships
باستخدام مصادقة التطبيقات:
  • chat.bot
أعضاء القائمة باستخدام مصادقة المستخدم:
  • chat.memberships.readonly
  • chat.memberships
  • chat.import
باستخدام مصادقة التطبيقات:
  • chat.bot
حذف عضو باستخدام مصادقة المستخدم:
  • chat.memberships
  • chat.memberships.app
  • chat.import
الرسائل  
إنشاء رسالة باستخدام مصادقة المستخدم:
  • chat.messages.create
  • chat.messages
  • chat.import
باستخدام مصادقة التطبيقات:
  • chat.bot
تلقّي رسالة باستخدام مصادقة المستخدم:
  • chat.messages.readonly
  • chat.messages
باستخدام مصادقة التطبيقات:
  • chat.bot
سرد الرسائل باستخدام مصادقة المستخدم:
  • chat.messages.readonly
  • chat.messages
  • chat.import
تعديل رسالة باستخدام مصادقة المستخدم:
  • chat.messages
  • chat.import
باستخدام مصادقة التطبيقات:
  • chat.bot
حذف رسالة باستخدام مصادقة المستخدم:
  • chat.messages
  • chat.import
باستخدام مصادقة التطبيقات:
  • chat.bot
التفاعلات  
إنشاء تفاعل باستخدام مصادقة المستخدم:
  • chat.messages.reactions.create
  • chat.messages.reactions
  • chat.messages
  • chat.import
إدراج التفاعلات باستخدام مصادقة المستخدم:
  • chat.messages.reactions.readonly
  • chat.messages.reactions
  • chat.messages.readonly
  • chat.messages
حذف تفاعل باستخدام مصادقة المستخدم:
  • chat.messages.reactions
  • chat.messages
  • chat.import
الوسائط والمرفقات  
تحميل الوسائط كمرفق ملف باستخدام مصادقة المستخدم:
  • chat.messages.create
  • chat.messages
  • chat.import
تنزيل الوسائط باستخدام مصادقة المستخدم:
  • chat.messages.readonly
  • chat.messages
باستخدام مصادقة التطبيقات:
  • chat.bot
تلقّي مرفق رسالة باستخدام مصادقة التطبيقات:
  • chat.bot

بالنسبة إلى أحداث التفاعل مع تطبيقات Chat

يسرد الجدول التالي الطرق الشائعة التي يتفاعل بها المستخدمون مع تطبيقات Chat وما إذا كانت المصادقة مطلوبة أو متاحة:

السيناريو لا تلزم المصادقة دعم مصادقة المستخدم دعم مصادقة التطبيقات
تلقّي رسائل من:
أحداث التفاعل مع تطبيقات Chat
عمليات معاودة الاتصال ببرمجة التطبيقات
Google Cloud Pub/Sub
الرد على الرسائل:
استخدام حدث التفاعل مع تطبيق Chat بشكل متزامن
بشكل متزامن، باستخدام قيمة عرض لمعاودة الاتصال لبرمجة التطبيقات
إرسال رسائل جديدة:
مع الردود التلقائية الواردة على الويب