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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

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

يمكن لتطبيقات الدردشة استخدام حسابات الخدمة للمصادقة عند استدعاء واجهة برمجة تطبيقات Google Chat REST API بشكل غير متزامن حتى يمكنها:

  • إرسال رسائل إلى Google Chat باستخدام spaces.messages.create لإجراء ما يلي:
    • إعلام المستخدمين عند انتهاء تشغيل مهمة خلفية تستغرق مدة زمنية طويلة.
    • تنبيه المستخدمين بأن أحد الخوادم أصبح في وضع عدم الاتصال.
    • اطلُب من أحد موظّفي دعم العملاء تقديم الدعم إلى تجربة عميل مفتوحة حديثًا.
  • تعديل الرسائل المُرسَلة سابقًا باستخدام spaces.messages.update إلى:
    • تغيير حالة التشغيل المستمر.
    • تعديل مُسنَد إليه المهمة أو تاريخ إنجازها
  • إدراج المستخدمين في مساحة باستخدام spaces.members.list لإجراء ما يلي:
    • معرفة من في الفضاء.
    • تحقَّق من أن عضوية المساحة تتضمّن جميع أعضاء الفريق.

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

إذا كان تطبيق Chat بحاجة إلى الوصول إلى بيانات المستخدم أو تنفيذ إجراءات نيابة عن مستخدم، عليك المصادقة كمستخدم بدلاً من ذلك.

لمزيد من المعلومات عن الحالات التي تتطلب فيها تطبيقات Chat المصادقة ونوع المصادقة التي يجب استخدامها، يُرجى الاطِّلاع على أنواع المصادقة المطلوبة في صفحة "نظرة عامة على المصادقة والمصادقة في واجهة برمجة تطبيقات Chat".

المتطلبات الأساسية

لتنفيذ المثال في هذا الدليل، تحتاج إلى المتطلبات الأساسية التالية:

لغة Python

الخطوة 1: إنشاء حساب خدمة في Google Cloud Console

أنشئ حساب خدمة سيستخدمه تطبيق Chat للوصول إلى Google APIs.

إنشاء حساب خدمة:

لإنشاء حساب خدمة، اتبع الخطوات التالية:

  1. في Google Cloud Console، انتقِل إلى القائمة > إدارة الهوية وإمكانية الوصول والمشرف > حسابات الخدمة.

    الانتقال إلى حسابات الخدمة

  2. انقر على إنشاء حساب خدمة.
  3. املأ تفاصيل حساب الخدمة، ثم انقر على إنشاء ومتابعة.
  4. اختياري: يمكنك إسناد الأدوار إلى حساب الخدمة لمنح الوصول إلى موارد مشروعك على Google Cloud. لمزيد من التفاصيل، يُرجى الرجوع إلى منح الموارد وتغييرها وإبطال الوصول إلى الموارد.
  5. انقر على متابعة.
  6. اختياري: أدخِل المستخدمين أو المجموعات التي يمكنها إدارة الإجراءات وتنفيذها باستخدام حساب الخدمة هذا. لمزيد من التفاصيل، يُرجى الرجوع إلى إدارة انتحال هوية حساب الخدمة.
  7. انقر على تم.

يظهر حساب الخدمة في صفحة حساب الخدمة. بعد ذلك، عليك إنشاء مفتاح خاص لحساب الخدمة.

إنشاء مفتاح خاص

لإنشاء مفتاح خاص لحساب الخدمة، اتبع الخطوات التالية:

  1. في Google Cloud Console، انتقِل إلى القائمة > إدارة الهوية وإمكانية الوصول والمشرف > حسابات الخدمة.

    الانتقال إلى حسابات الخدمة

  2. اختَر حساب الخدمة.
  3. انقر على المفاتيح > إضافة مفتاح > إنشاء مفتاح جديد.
  4. حدد JSON، ثم انقر على إنشاء.

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

  5. انقر على إغلاق.

لمزيد من المعلومات حول حسابات الخدمة، راجع حسابات الخدمة في مستندات Google Cloud IAM.

الخطوة 2: كتابة نص برمجي يستخدم حساب الخدمة للمصادقة باستخدام Chat REST API

تتم مصادقة الرمز التالي باستخدام Chat REST API باستخدام حساب خدمة، ثم ينشر رسالة إلى مساحة Chat:

لغة Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_app_auth.py.
  2. يجب تضمين الرمز التالي في chat_app_auth.py:

    from httplib2 import Http
    from oauth2client.service_account import ServiceAccountCredentials
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name(
        'service_account.json', SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http()))
    
    # Create a Chat message.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE_NAME with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE_NAME',
    
        # The message to create.
        body={'text': 'Hello, world!'}
    
    ).execute()
    
    print(result)
    
  3. في الرمز، استبدِل SPACE_NAME باسم مساحة عمل، يمكنك الحصول عليه من طريقة spaces.list في Google Chat API أو من عنوان URL لمساحة.

الخطوة 3: تشغيل المثال الكامل

في دليل العمل، يمكنك إنشاء النموذج وتشغيله:

لغة Python

python3 chat_create_card_message.py

يرسل النص البرمجي طلبًا تمت مصادقته إلى Chat REST API، الذي يستجيب للردّ على رسالة في مساحة Chat كتطبيق Chat.

تحرّي الخلل في المثال وإصلاحه

يصف هذا القسم المشاكل الشائعة التي قد تواجهها أثناء محاولة تشغيل هذا النموذج.

غير مسموح لك باستخدام هذا التطبيق

عند تشغيل chat_app_auth.py، قد يظهر لك خطأ:

<HttpError 403 when requesting https://chat.googleapis.com/v1/spaces/{space}/messages?alt=json returned "You are not permitted to use this app". Details: "You are not permitted to use this app">

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

لإصلاح هذا الخطأ، يمكنك إضافة تطبيق Chat إلى مساحة Chat المحددة في chat_app_auth.py.

الخطوة التالية

تعرّف على ما يمكن أن تفعله واجهة برمجة تطبيقات Chat من خلال مراجعة الوثائق المرجعية لـ Chat API.