يوضّح هذا الدليل كيفية استخدام طريقة findDirectMessage
على مورد Space
لواجهة برمجة تطبيقات Google Chat للحصول على تفاصيل حول مساحة الرسائل المباشرة (DM).
يمثّل
المورد Space
مكانًا يمكن فيه للمستخدمين وتطبيقات Chat إرسال الرسائل
ومشاركة الملفات والتعاون. تتوفّر عدة أنواع من المساحات:
- الرسائل المباشرة هي محادثات بين مستخدمَين أو مستخدم وتطبيق في Chat.
- المحادثات الجماعية هي محادثات بين ثلاثة مستخدمين أو أكثر وتطبيقات Chat.
- المساحات المُسمّاة هي أماكن دائمة يمكن للمستخدمين من خلالها إرسال الرسائل ومشاركة الملفات والتعاون معًا.
تسمح المصادقة باستخدام مصادقة التطبيقات لتطبيق Chat بالحصول على الرسائل المباشرة التي يمكن لتطبيق Chat الوصول إليها في Google Chat (مثل الرسائل المباشرة التي يكون عضوًا فيها). تؤدي المصادقة باستخدام مصادقة المستخدم إلى عرض الرسائل المباشرة التي يمكن للمستخدم الذي تمت المصادقة الوصول إليها.
المتطلبات الأساسية
Python
- Python 3.6 أو أحدث
- إنّ أداة إدارة الحِزم pip
أحدث مكتبات عملاء Google للغة Python. لتثبيتها أو تحديثها، شغّل الأمر التالي في واجهة سطر الأوامر:
pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
- مشروع على Google Cloud تم فيه تفعيل Google Chat API وضبطه لمعرفة الخطوات، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat.
تم ضبط التفويض لتطبيق Chat. ويتيح البحث عن رسالة مباشرة كلّاً من التالي:
- مصادقة المستخدم
باستخدام نطاق التفويض
chat.spaces.readonly
أوchat.spaces
. - مصادقة التطبيقات
باستخدام نطاق التفويض
chat.bot
.
- مصادقة المستخدم
باستخدام نطاق التفويض
Node.js
- Node.js وnpm
أحدث مكتبات عملاء Google لنظام Node.js. ولتثبيتها، شغِّل الأمر التالي في واجهة سطر الأوامر:
npm install @google-cloud/local-auth @googleapis/chat
- مشروع على Google Cloud تم فيه تفعيل Google Chat API وضبطه لمعرفة الخطوات، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat.
تم ضبط التفويض لتطبيق Chat. ويتيح البحث عن رسالة مباشرة كلّاً من التالي:
- مصادقة المستخدم
باستخدام نطاق التفويض
chat.spaces.readonly
أوchat.spaces
. - مصادقة التطبيقات
باستخدام نطاق التفويض
chat.bot
.
- مصادقة المستخدم
باستخدام نطاق التفويض
العثور على رسالة مباشرة
للعثور على رسالة مباشرة في Google Chat، ضَع ما يلي في طلبك:
- باستخدام مصادقة التطبيق، حدِّد
نطاق تفويض
chat.bot
. باستخدام مصادقة المستخدم، حدِّد نطاق التفويضchat.spaces.readonly
أوchat.spaces
. - يمكنك استدعاء
طريقة
findDirectMessage
على الموردUser
، وإرسالname
للمستخدم الآخر إلى الرسالة المباشرة للعودة. باستخدام مصادقة المستخدم، تعرض هذه الطريقة رسالة مباشرة بين المستخدم المتصل والمستخدم المحدَّد. باستخدام مصادقة التطبيقات، تعرض هذه الطريقة رسالة مباشرة بين تطبيق الاتصال والمستخدم المحدّد. - لإضافة مستخدم كعضو في مساحة، حدِّد
users/{user}
حيث يشير{user}
إلى{person_id}
person
من People API أو رقم تعريفuser
في Directory API. على سبيل المثال، إذا كان اسم المستخدمresourceName
في People API هوpeople/123456789
، يمكنك إضافة المستخدم إلى المساحة من خلال تضمين اشتراك فيusers/123456789
على أنّهmember.name
.
العثور على رسالة مباشرة تتضمّن مصادقة المستخدم
إليك كيفية العثور على رسالة مباشرة باستخدام مصادقة المستخدم:
Python
- في دليل العمل، أنشِئ ملفًا باسم
chat_space_find_dm_user.py
. ضمِّن الرمز التالي في
chat_space_find_dm_user.py
:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.spaces.readonly"] def main(): ''' Authenticates with Chat API via user credentials, then returns details about a specified DM. ''' # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = chat.spaces().findDirectMessage( # The other user in the direct message (DM) to return. # # Replace USER with a user name. name='users/USER' ).execute() # Prints details about the direct message. print(result) if __name__ == '__main__': main()
في الرمز، استبدِل
USER
بـname
الخاصة بـUser
في Google Chat.في دليل العمل، أنشئ النموذج وقم بتشغيله:
python3 chat_space_find_dm_user.py
Node.js
في دليل العمل، أنشِئ ملفًا باسم
find-direct-message-space.js
.ضمِّن الرمز التالي في
find-direct-message-space.js
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Find a direct message Chat space for a user. * @return {!Promise<!Object>} */ async function findDirectMessageSpace() { const scopes = [ 'https://www.googleapis.com/auth/chat.spaces.readonly', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.findDirectMessage( {name: 'users/USER'}); } findDirectMessageSpace().then(console.log);
في الرمز، استبدِل
USER
بـname
الخاصة بـUser
في Google Chat.في دليل العمل، شغِّل النموذج:
node find-direct-message-space.js
تعرِض Chat API مثيل Space
الذي يوضّح الرسالة المباشرة المحدّدة.
العثور على رسالة مباشرة باستخدام مصادقة التطبيق
في ما يلي كيفية العثور على رسالة مباشرة باستخدام مصادقة التطبيق:
Python
- في دليل العمل، أنشِئ ملفًا باسم
chat_space_find_dm_app.py
. ضمِّن الرمز التالي في
chat_space_find_dm_app.py
:from google.oauth2 import service_account from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Use the service endpoint to call Chat API. result = chat.spaces().findDirectMessage( # The other user in the direct message (DM) to return. # # Replace USER with a user name. name='users/USER' ).execute() print(result)
في الرمز، استبدِل
USER
بـname
الخاصة بـUser
في Google Chat.في دليل العمل، أنشئ النموذج وقم بتشغيله:
python3 chat_space_find_dm_app.py
Node.js
في دليل العمل، أنشِئ ملفًا باسم
app-find-direct-message-space.js
.ضمِّن الرمز التالي في
app-find-direct-message-space.js
:const chat = require('@googleapis/chat'); /** * Find a direct message Chat space for a user. * @return {!Promise<!Object>} */ async function findDirectMessageSpace() { const scopes = [ 'https://www.googleapis.com/auth/chat.bot', ]; const auth = new chat.auth.GoogleAuth({ scopes, keyFilename: 'credentials.json', }); const authClient = await auth.getClient(); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.findDirectMessage( {name: 'users/USER'}); } findDirectMessageSpace().then(console.log);
في الرمز، استبدِل
USER
بـname
الخاصة بـUser
في Google Chat.في دليل العمل، شغِّل النموذج:
node app-find-direct-message-space.js
تعرِض Chat API مثيل Space
الذي يوضّح الرسالة المباشرة المحدَّدة.