يوضّح هذا الدليل كيفية إعداد حساب خدمة واستخدامه للوصول إلى Google Chat API نيابةً عن تطبيق Chat. في البداية، يقدّم لك إرشادات حول كيفية إنشاء حساب خدمة. بعد ذلك، يوضّح كيفية كتابة نص برمجي يستخدم حساب الخدمة للمصادقة على Chat API ونشر رسالة في مساحة Chat.
عند المصادقة باستخدام حساب خدمة، يجب أن تكون تطبيقات Chat أعضاءً في مساحة Chat للحصول على بيانات حول المساحة أو تنفيذ إجراءات فيها. على سبيل المثال، لإدراج أعضاء مساحة أو إنشاء رسالة في مساحة، يجب أن يكون تطبيق Chat نفسه عضوًا في المساحة. الاستثناء الوحيد هو عندما ينشئ تطبيق Chat مساحة باستخدام مصادقة التطبيق، وفي هذه الحالة، ينشئ التطبيق المساحة ثم يصبح عضوًا فيها تلقائيًا.
تتطلّب طرق Google Chat API التي تتيح تفويض التطبيقات باستخدام نطاقات التفويض التي تبدأ أسماؤها بـ https://www.googleapis.com/auth/chat.app.*
موافقة المشرف لمرة واحدة.
لا تتطلّب طرق Google Chat API التي تتيح تفويض التطبيقات باستخدام نطاق التفويض https://www.googleapis.com/auth/chat.bot
موافقة إضافية. تتوفّر https://www.googleapis.com/auth/chat.app.*
نطاقات التفويض في
إصدار "معاينة المطور".
إذا كان تطبيق Chat يحتاج إلى الوصول إلى بيانات المستخدم أو تنفيذ إجراءات نيابةً عنه، عليك المصادقة كمستخدم بدلاً من ذلك. إذا كنت مشرف نطاق، يمكنك منح تفويض على مستوى النطاق للسماح لحساب خدمة أحد تطبيقات Chat بالوصول إلى بيانات المستخدمين بدون طلب موافقة كل مستخدم. لمزيد من المعلومات، راجِع المصادقة والتفويض باستخدام التفويض على مستوى النطاق.
لمزيد من المعلومات حول الحالات التي تتطلّب فيها تطبيقات Chat المصادقة ونوع المصادقة المطلوب، يُرجى الاطّلاع على أنواع المصادقة المطلوبة في نظرة عامة على المصادقة والتفويض في Chat API.
المتطلبات الأساسية
Java
- JDK 1.7 أو إصدار أحدث
- أداة إدارة الحِزم Maven
-
مشروع Maven تم إعداده لبدء مشروع جديد، نفِّذ الأمر التالي في واجهة سطر الأوامر:
mvn archetype:generate -DgroupId=com.google.chat.app.authsample -DartifactId=auth-sample-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
- تطبيق Google Chat يتلقّى أحداث التفاعل ويردّ عليها. لإنشاء تطبيق تفاعلي على Chat باستخدام خدمة HTTP، أكمِل هذا الدليل السريع.
- أضِف تطبيق Chat إلى مساحة. لإضافة تطبيق Chat، يُرجى الاطّلاع على اختبار الميزات التفاعلية لتطبيقات Google Chat.
Python
- الإصدار 3.6 أو الإصدارات الأحدث من Python
- أداة إدارة الحزم pip
- تطبيق Google Chat يتلقّى أحداث التفاعل ويردّ عليها. لإنشاء تطبيق تفاعلي على Chat باستخدام خدمة HTTP، أكمِل هذا الدليل السريع.
- أضِف تطبيق Chat إلى مساحة. لإضافة تطبيق Chat، يُرجى الاطّلاع على اختبار الميزات التفاعلية لتطبيقات Google Chat.
Node.js
- Node.js 14 أو إصدار أحدث
- npm، وهي أداة لإدارة الحِزم
-
مشروع Node.js تم إعداده لبدء مشروع جديد، أنشئ مجلدًا جديدًا وانتقِل إليه، ثم نفِّذ الأمر التالي في واجهة سطر الأوامر:
npm init
- تطبيق Google Chat يتلقّى أحداث التفاعل ويردّ عليها. لإنشاء تطبيق تفاعلي على Chat باستخدام خدمة HTTP، أكمِل هذا الدليل السريع.
- أضِف تطبيق Chat إلى مساحة. لإضافة تطبيق Chat، يُرجى الاطّلاع على اختبار الميزات التفاعلية لتطبيقات Google Chat.
برمجة تطبيقات
- تطبيق Google Chat يتلقّى أحداث التفاعل ويردّ عليها. لإنشاء تطبيق تفاعلي في Chat باستخدام "برمجة تطبيقات Google"، يُرجى إكمال هذا البدء السريع.
- أضِف تطبيق Chat إلى مساحة. لإضافة تطبيق Chat، يُرجى الاطّلاع على اختبار الميزات التفاعلية لتطبيقات Google Chat.
الخطوة 1: إنشاء حساب خدمة في "وحدة تحكّم Google Cloud"
أنشئ حساب خدمة يمكن لتطبيق Chat استخدامه للوصول إلى واجهات Google APIs.
إنشاء حساب خدمة
لإنشاء حساب خدمة، اتّبِع الخطوات التالية:
Google Cloud Console
- في Google Cloud Console، انتقِل إلى "القائمة" > المشرف وإدارة الهوية وإمكانية الوصول > حسابات الخدمة.
- انقر على إنشاء حساب خدمة.
- املأ تفاصيل حساب الخدمة، ثم انقر على إنشاء ومتابعة.
- اختياري: يمكنك إسناد أدوار إلى حساب الخدمة لمنحه إذن الوصول إلى موارد مشروعك على Google Cloud. لمزيد من التفاصيل، يُرجى الرجوع إلى منح إذن الوصول إلى الموارد وتغييره وإبطاله.
- انقر على متابعة.
- اختياري: أدخِل المستخدمين أو المجموعات التي يمكنها إدارة حساب الخدمة هذا وتنفيذ إجراءات فيه. لمزيد من التفاصيل، يُرجى الاطّلاع على إدارة انتحال هوية حساب الخدمة.
- انقر على تم. دوِّن عنوان البريد الإلكتروني لحساب الخدمة.
gcloud CLI
- أنشئ حساب الخدمة:
gcloud iam service-accounts create
SERVICE_ACCOUNT_NAME
\ --display-name="SERVICE_ACCOUNT_NAME
" - اختياري: يمكنك إسناد أدوار إلى حساب الخدمة لمنحه إذن الوصول إلى موارد مشروعك على Google Cloud. لمزيد من التفاصيل، يُرجى الرجوع إلى منح إذن الوصول إلى الموارد وتغييره وإبطاله.
يظهر حساب الخدمة في صفحة حساب الخدمة. بعد ذلك، أنشئ مفتاحًا خاصًا لحساب الخدمة.
إنشاء مفتاح خاص
لإنشاء مفتاح خاص لحساب الخدمة وتنزيله، اتّبِع الخطوات التالية:
- في Google Cloud Console، انتقِل إلى "القائمة" > المشرف وإدارة الهوية وإمكانية الوصول > حسابات الخدمة.
- اختَر حساب الخدمة.
- انقر على المفاتيح > إضافة مفتاح > إنشاء مفتاح جديد.
- اختَر JSON، ثمّ انقر على إنشاء.
يتم إنشاء زوج المفتاح العام/الخاص وتنزيله على جهازك كملف جديد. احفظ ملف JSON الذي تم تنزيله باسم
credentials.json
في دليل العمل. هذا الملف هو النسخة الوحيدة من هذا المفتاح. للحصول على معلومات عن طريقة التخزين الآمن للمفتاح، راجِع إدارة مفاتيح حساب الخدمة. - انقر على إغلاق (Close).
لمزيد من المعلومات حول حسابات الخدمة، يُرجى الاطّلاع على حسابات الخدمة في مستندات "إدارة الهوية وإمكانية الوصول" في Google Cloud.
بعد ذلك، أنشئ عميل OAuth متوافقًا مع Google Workspace Marketplace لحساب الخدمة هذا.
الحصول على موافقة المشرف
لاستخدام نطاق التفويض https://www.googleapis.com/auth/chat.bot
،
لا يلزم الحصول على موافقة المشرف. انتقِل إلى
الخطوة 2: تثبيت مكتبة برامج Google والتبعيات الأخرى.
يستخدم المثال الوارد في هذا الدليل https://www.googleapis.com/auth/chat.bot
نطاق التفويض، لذا إذا كنت تتّبع المثال، انتقِل إلى الخطوة 2.
لاستخدام نطاق تفويض يبدأ بـ https://www.googleapis.com/auth/chat.app.*
، وهو متاح كجزء من "إصدار تجريبي للمطوّرين"، يجب أن يحصل تطبيق Chat على موافقة المشرف لمرة واحدة.
للحصول على موافقة المشرف، يجب إعداد حساب خدمة تطبيق Chat باستخدام المعلومات التالية:
- تطبيق عميل متوافق مع Google Workspace Marketplace يستخدم البروتوكول OAuth
- إعداد التطبيق في حزمة تطوير البرامج (SDK) في Google Workspace Marketplace
إنشاء عميل OAuth متوافق مع Google Workspace Marketplace
لإنشاء عميل OAuth متوافق مع Google Workspace Marketplace، اتّبِع الخطوات التالية:
في Google Cloud Console، انتقِل إلى "القائمة" > المشرف وإدارة الهوية وإمكانية الوصول > حسابات الخدمة.
انقر على حساب الخدمة الذي أنشأته لتطبيق Chat.
انقر على الإعدادات المتقدمة.
انقر على إنشاء عميل OAuth متوافق مع Google Workspace Marketplace.
انقر على متابعة.
ستظهر رسالة تأكيد تفيد بأنّه تم إنشاء عميل OAuth متوافق مع Google Workspace Marketplace.
ضبط تطبيق Chat في حزمة تطوير البرامج (SDK) في Google Workspace Marketplace
لضبط تطبيق Chat في حزمة تطوير البرامج (SDK) في Google Workspace Marketplace، اتّبِع الخطوات التالية:
في Google Cloud Console، فعِّل حزمة تطوير البرامج (SDK) في Google Workspace Marketplace.
تفعيل حزمة تطوير البرامج (SDK) في Google Workspace Marketplace
في Google Cloud Console، انتقِل إلى القائمة > واجهات برمجة التطبيقات والخدمات > واجهات برمجة التطبيقات والخدمات المفعّلة > Google Workspace Marketplace SDK > إعدادات التطبيق.
أكمِل صفحة "إعدادات التطبيق". تعتمد طريقة إعداد تطبيق الدردشة على الجمهور المستهدَف وعوامل أخرى. للحصول على مساعدة في إكمال صفحة إعداد التطبيق، يُرجى الاطّلاع على ضبط تطبيقك في حزمة تطوير البرامج (SDK) في Google Workspace Marketplace. لأغراض هذا الدليل، أدخِل المعلومات التالية:
- ضمن ظهور التطبيقات، اختَر خاص.
- ضِمن إعدادات التثبيت، اختَر التثبيت الفردي + تثبيت المشرف.
- ضمن عمليات تكامل التطبيقات، اختَر تطبيق Chat.
ضمن نطاقات OAuth، أدخِل جميع نطاقات المصادقة التي يستخدمها تطبيق Chat.
ضمن معلومات المطوِّر، أدخِل اسم المطوِّر وعنوان URL لموقع المطوِّر الإلكتروني والبريد الإلكتروني للمطوِّر.
انقر على حفظ المسودة.
الحصول على موافقة المشرف
بعد إعداد حساب الخدمة لتلقّي موافقة المشرف، احصل على الموافقة من مشرف Google Workspace يمكنه منحها باتّباع الخطوات الواردة في إعداد التفويض لتطبيقات Chat.
الخطوة 2: تثبيت مكتبة برامج Google والبرامج التابعة الأخرى
ثبِّت مكتبة برامج Google والموارد التابعة الأخرى المطلوبة للمشروع.
Java
لإضافة مكتبات برامج Google للعملاء والتبعيات الأخرى المطلوبة إلى مشروع Maven، عدِّل الملف pom.xml
في دليل مشروعك وأضِف التبعيات التالية:
<dependencies>
<!-- ... existing dependencies ... -->
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-chat</artifactId>
<version>v1-rev20230905-2.0.0</version>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-oauth2-http</artifactId>
<version>1.19.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
</dependencies>
Python
إذا لم يسبق لك تثبيت مكتبات برامج Google للغة Python، شغِّل الأمر التالي في واجهة سطر الأوامر:
pip3 install --upgrade google-api-python-client google-auth
Node.js
لإضافة مكتبات برامج Google إلى مشروع Node.js، انتقِل إلى دليل مشروعك ونفِّذ الأمر التالي في واجهة سطر الأوامر:
npm install "@googleapis/chat"
برمجة تطبيقات
يستخدم هذا النموذج مكتبة OAuth2 لـ "برمجة تطبيقات Google" لإنشاء رمز JWT مميّز لمصادقة حساب الخدمة. لإضافة المكتبة إلى مشروعك في "برمجة تطبيقات Google"، اتّبِع الخطوات التالية:
- على يمين الشاشة، انقر على أداة التعديل .
- على يمين الصفحة، بجانب المكتبات، انقر على إضافة مكتبة .
- أدخِل معرّف النص البرمجي
1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF
. - انقر على البحث، ثمّ على إضافة.
يستخدم هذا النموذج خدمة Chat المتقدّمة لطلب بيانات من واجهة برمجة تطبيقات Google Chat. لتفعيل الخدمة لمشروعك في "برمجة تطبيقات Google"، اتّبِع الخطوات التالية:
- على يمين الشاشة، انقر على أداة التعديل .
- على يمين الصفحة، انقر على إضافة خدمة بجانب الخدمات.
- اختَر Google Chat API.
- في الإصدار، اختَر v1.
- انقر على إضافة.
يمكنك استخدام أي لغة متوافقة مع مكتبات البرامج.
الخطوة 3: كتابة نص برمجي يستخدم حساب الخدمة للمصادقة باستخدام Chat API
يصادق الرمز التالي على Chat API باستخدام حساب خدمة، ثم ينشر رسالة في مساحة Chat:
Java
- في دليل مشروعك، افتح الملف
src/main/java/com/google/chat/app/authsample/App.java
. استبدِل المحتوى في
App.java
بالرمز التالي:package com.google.chat.app.authsample; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpRequestInitializer; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.chat.v1.HangoutsChat; import com.google.api.services.chat.v1.model.Message; import com.google.auth.http.HttpCredentialsAdapter; import com.google.auth.oauth2.GoogleCredentials; /** * Authenticates with Chat API using service account credentials, * then creates a Chat message. */ public class App { // Specify required scopes. private static final String CHAT_SCOPE = "https://www.googleapis.com/auth/chat.bot"; // Specify service account details. private static final String PRIVATE_KEY_RESOURCE_URI = "/credentials.json"; public static void main( String[] args ) { try { // Run app. Message response = App.createChatMessage(); // Print details about the created message. System.out.println(response); } catch (Exception e) { e.printStackTrace(); } } private static Message createChatMessage() throws Exception { // Build the Chat API client and authenticate with the service account. GoogleCredentials credentials = GoogleCredentials.fromStream( App.class.getResourceAsStream(PRIVATE_KEY_RESOURCE_URI)) .createScoped(CHAT_SCOPE); HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(credentials); HangoutsChat chatService = new HangoutsChat.Builder( GoogleNetHttpTransport.newTrustedTransport(), GsonFactory.getDefaultInstance(), requestInitializer) .setApplicationName("auth-sample-app") .build(); // 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. String spaceName = "spaces/SPACE_NAME"; // Create a Chat message. Message message = new Message().setText("Hello, world!"); return chatService.spaces().messages().create(spaceName, message).execute(); } }
في الرمز، استبدِل
SPACE_NAME
باسم مساحة، ويمكنك الحصول عليه من طريقةspaces.list
في Chat API أو من عنوان URL الخاص بمساحة.أنشئ دليلاً فرعيًا جديدًا باسم
resources
ضمن دليل مشروعك.تأكَّد من أنّ اسم ملف المفتاح الخاص لحساب الخدمة هو
credentials.json
وانسَخه إلى الدليل الفرعيresources
.لضبط Maven على تضمين ملف المفتاح الخاص في حزمة المشروع، عدِّل الملف
pom.xml
في دليل مشروعك وأضِف إعدادات الضبط التالية إلى القسم<build>
:<build> <!-- ... existing configurations ... --> <resources> <resource> <directory>resources</directory> </resource> </resources> </build>
لضبط Maven لتضمين التبعيات في حزمة المشروع وتنفيذ الفئة الرئيسية لتطبيقك، عدِّل الملف
pom.xml
في دليل مشروعك وأضِف الإعداد التالي إلى القسم<plugins>
:<plugins> <!-- ... existing configurations ... --> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.google.chat.app.authsample.App</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins>
Python
- في دليل العمل، أنشئ ملفًا باسم
chat_app_auth.py
. أدرِج الرمز التالي في
chat_app_auth.py
:from apiclient.discovery import build from google.oauth2 import service_account # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. creds = service_account.Credentials.from_service_account_file( 'credentials.json', scopes=SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=creds) # 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() # Prints details about the created message. print(result)
في الرمز، استبدِل
SPACE_NAME
باسم مساحة، ويمكنك الحصول عليه من طريقةspaces.list
في Chat API أو من عنوان URL الخاص بمساحة. تأكَّد من أنّ اسم ملف المفتاح الخاص لحساب الخدمة هوcredentials.json
.
Node.js
- في دليل مشروعك، أنشئ ملفًا باسم
chat_app_auth.js
. أدرِج الرمز التالي في
chat_app_auth.js
:const chat = require('@googleapis/chat'); async function createMessage() { const auth = new chat.auth.GoogleAuth({ // Specify service account details. keyFilename: 'credentials.json', // Specify required scopes. scopes: ['https://www.googleapis.com/auth/chat.bot'] }); const authClient = await auth.getClient(); // Create the Chat API client and authenticate with the service account. const chatClient = await chat.chat({ version: 'v1', auth: authClient }); // Create a Chat message. const result = await chatClient.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. requestBody: { 'text': 'Hello, world!' } }); return result; } // Execute function then print details about the created message. createMessage().then(console.log);
في الرمز، استبدِل
SPACE_NAME
باسم مساحة، ويمكنك الحصول عليه من طريقةspaces.list
في Chat API أو من عنوان URL الخاص بمساحة. تأكَّد من أنّ اسم ملف المفتاح الخاص لحساب الخدمة هوcredentials.json
.
برمجة تطبيقات
في محرّر "برمجة تطبيقات Google"، عدِّل الملف
appsscript.json
وأضِف نطاق OAuth اللازم لإجراء طلبات خارجية للحصول على رمز OAuth المميز لحساب الخدمة:"oauthScopes": [ "https://www.googleapis.com/auth/script.external_request" ]
احفظ الرمز التالي في ملف باسم
ChatAppAuth.gs
في مشروع "برمجة تطبيقات Google":// Specify the contents of the file credentials.json. const CREDENTIALS = CREDENTIALS; const SCOPE = 'https://www.googleapis.com/auth/chat.bot'; // 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. const PARENT = 'spaces/SPACE_NAME' /** * Authenticates with Chat API using app credentials, then posts a message. */ function createMessageWithAppCredentials() { try { const service = getService_(); if (!service.hasAccess()) { console.error(service.getLastError()); return; } // Specify the message to create. const message = {'text': 'Hello world!'}; // Call Chat API with a service account to create a message. const result = Chat.Spaces.Messages.create( message, PARENT, {}, // Authenticate with the service account token. {'Authorization': 'Bearer ' + service.getAccessToken()}); // Log details about the created message. console.log(result); } catch (err) { // TODO (developer) - Handle exception. console.log('Failed to create message with error %s', err.message); } } /** * Configures the OAuth library to authenticate with the service account. */ function getService_() { return OAuth2.createService(CREDENTIALS.client_email) .setTokenUrl('https://oauth2.googleapis.com/token') .setPrivateKey(CREDENTIALS.private_key) .setIssuer(CREDENTIALS.client_email) .setSubject(CREDENTIALS.client_email) .setScope(SCOPE) .setPropertyStore(PropertiesService.getScriptProperties()); }
في الرمز، استبدِل
CREDENTIALS
بمحتوى الملفcredentials.json
.في الرمز، استبدِل
SPACE_NAME
باسم مساحة، ويمكنك الحصول عليه من طريقةspaces.list
في Chat API أو من عنوان URL الخاص بمساحة.
الخطوة 4: تشغيل المثال الكامل
في دليل العمل، أنشئ النموذج وشغِّله:
Java
mvn compile assembly:single
java -jar target/auth-sample-app-1.0-SNAPSHOT-jar-with-dependencies.jar
Python
python3 chat_app_auth.py
Node.js
node chat_app_auth.js
برمجة تطبيقات
افتح الملف ChatAppAuth.gs
في "محرّر برمجة تطبيقات Google" وانقر على تشغيل.
ينفّذ النص البرمجي طلبًا مصادقًا إلى Chat API، الذي يستجيب من خلال نشر رسالة في مساحة Chat كتطبيق في Chat.
تحديد المشاكل في المثال وحلّها
يوضّح هذا القسم المشاكل الشائعة التي قد تواجهها أثناء محاولة تشغيل هذا النموذج.
لا يُسمح لك باستخدام هذا التطبيق
عند تشغيل النص البرمجي، قد تظهر لك رسالة خطأ تفيد بما يلي:
<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 المحدّدة في النص البرمجي.
يجب أن يمنح المشرف التطبيق نطاق تفويض OAuth المطلوب لهذا الإجراء
عند تشغيل النص البرمجي، قد تظهر لك رسالة خطأ تفيد بما يلي:
<HttpError 403 when requesting https://chat.googleapis.com/v1/spaces/{space}?alt=json returned "The administrator must grant the app the required OAuth authorization scope for this action.". Details: "The administrator must grant the app the required OAuth authorization scope for this action.">
تعني رسالة الخطأ هذه أنّ أحد مشرفي Google Workspace لم يمنح بعد موافقة لمرة واحدة لتطبيق Chat لاستخدام نطاقات الأذونات التي تبدأ بالاسم https://www.googleapis.com/auth/chat.app.*
.
لحلّ هذا الخطأ، اتّبِع الخطوات التالية:
- اطلب من مشرف Google Workspace منح الموافقة لتطبيق Chat.
عند معالجة هذا الخطأ في منطق تطبيق Chat،
ننصحك بإرسال رسالة لإعلام المستخدم بأنّ
تطبيق Chat يحتاج إلى موافقة المشرف لتنفيذ
الإجراء المطلوب، مثلاً:
To perform this action, I need approval. <https://support.google.com/a?p=chat-app-auth|Learn more>.
- إذا كانت طريقة Google Chat API تتوافق مع نطاق إذن الوصول
https://www.googleapis.com/auth/chat.bot
الذي لا يتطلّب موافقة المشرف، ننصحك باستخدامها بدلاً من الطريقة الحالية. للاطّلاع على نطاقات التفويض التي تتيحها إحدى الطرق، يُرجى الرجوع إلى مستندات Google Chat API المرجعية.
مواضيع ذات صلة
- يمكنك الاطّلاع على المزيد من المعلومات حول إمكانات Chat API من خلال مراجعة المستندات المرجعية الخاصة بها.
- في حال استخدام نطاقات تفويض OAuth تبدأ بـ
https://www.googleapis.com/auth/chat.app.*
، تعرَّف على كيفية منح المشرفين موافقة لمرة واحدة.