يوضّح هذا الدليل الطرق المختلفة التي يمكن لتطبيقات Google Chat من خلالها إرسال الرسائل:
- أرسل رسائل نصية ورسائل بطاقة في الوقت الفعلي من خلال الرد على تفاعل المستخدم.
- يمكنك إرسال الرسائل النصية ورسائل البطاقات بشكل غير متزامن من خلال استدعاء طريقة
create
في موردMessage
. - بدء سلسلة رسائل أو الرد عليها
- أرسِل رسالة وأدخِل اسمًا لها.
يمثل
مورد Message
رسالة
نصية
أو
بطاقة في Google Chat. يمكنك create
أو get
أو update
أو delete
رسالة في Google Chat API من خلال استدعاء طرق مطابقة. لمعرفة المزيد من المعلومات حول الرسائل النصية ورسائل البطاقات، راجِع
نظرة عامة على رسائل Google Chat.
الحد الأقصى لحجم الرسالة (بما في ذلك أي نصوص أو بطاقات) هو 32000 بايت. إذا تجاوزت رسالة هذا الحجم، يمكن لتطبيق Chat إرسال رسائل متعددة بدلاً من ذلك.
بدلاً من استدعاء طريقة create
في مورد Message
في Google Chat API لإرسال رسالة نصية أو بطاقة بشكل غير متزامن، يمكن لتطبيقات Google Chat أيضًا إنشاء رسائل للاستجابة لتفاعلات المستخدمين في الوقت الفعلي. ولا تتطلّب الردود على تفاعلات المستخدمين المصادقة، كما أنّها تتوافق مع أنواع أخرى من الرسائل، بما في ذلك مربّعات الحوار التفاعلية ومعاينات الروابط. لمعرفة التفاصيل، يُرجى الاطّلاع على
تلقّي التفاعلات مع تطبيق Google Chat والردّ عليها.
المتطلّبات الأساسية
Node.js
- حساب على Google Workspace يمكنه الوصول إلى Google Chat.
- مشروع على Google Cloud مع تفعيل وإعداد Google Chat API لمعرفة الخطوات، راجِع إنشاء تطبيق Google Chat.
- تم ضبط التفويض لتطبيق Chat لإرسال
الرسائل غير المتزامنة. لا يلزم إعداد التفويض لإرسال
الرسائل في الوقت الفعلي.
- يتيح إرسال
رسالة نصية
استخدام طريقتي التفويض التاليتين:
- مصادقة المستخدم
باستخدام نطاق التفويض
chat.messages.create
أوchat.messages
. - مصادقة التطبيق
باستخدام نطاق تفويض
chat.bot
.
- مصادقة المستخدم
باستخدام نطاق التفويض
- يتطلّب إرسال
رسالة بطاقة
مصادقة التطبيق
باستخدام نطاق تفويض
chat.bot
.
- يتيح إرسال
رسالة نصية
استخدام طريقتي التفويض التاليتين:
Python
- حساب على Google Workspace يمكنه الوصول إلى Google Chat.
- Python 3.6 أو أعلى
- تتيح لك أداة pip إدارة الحزم
أحدث مكتبات برامج Google للغة بايثون. لتثبيتها أو تحديثها، قم بتشغيل الأمر التالي في واجهة سطر الأوامر لديك:
pip3 install --upgrade google-api-python-client google-auth
- مشروع على Google Cloud مع تفعيل وإعداد Google Chat API لمعرفة الخطوات، راجِع إنشاء تطبيق Google Chat.
تم ضبط التفويض لتطبيق Chat لإرسال الرسائل غير المتزامنة. لا يلزم إعداد التفويض لإرسال الرسائل في الوقت الفعلي.
- يتيح إرسال
رسالة نصية
استخدام طريقتي التفويض التاليتين:
- مصادقة المستخدم
باستخدام نطاق التفويض
chat.messages.create
أوchat.messages
. - مصادقة التطبيق
باستخدام نطاق تفويض
chat.bot
.
- مصادقة المستخدم
باستخدام نطاق التفويض
- يتطلّب إرسال
رسالة بطاقة
مصادقة التطبيق
باستخدام نطاق تفويض
chat.bot
.
- يتيح إرسال
رسالة نصية
استخدام طريقتي التفويض التاليتين:
Apps Script
- حساب على Google Workspace يمكنه الوصول إلى Google Chat.
- تم نشر تطبيق Chat. لإنشاء تطبيق Chat، اتّبِع خطوات quickstart هذه.
- تم ضبط التفويض لتطبيق Chat لإرسال
الرسائل غير المتزامنة. لا يلزم إعداد التفويض لإرسال
الرسائل في الوقت الفعلي.
- يتيح إرسال
رسالة نصية
استخدام طريقتي التفويض التاليتين:
- مصادقة المستخدم
باستخدام نطاق التفويض
chat.messages.create
أوchat.messages
. - مصادقة التطبيق
باستخدام نطاق تفويض
chat.bot
.
- مصادقة المستخدم
باستخدام نطاق التفويض
- يتطلّب إرسال
رسالة بطاقة
مصادقة التطبيق
باستخدام نطاق تفويض
chat.bot
.
- يتيح إرسال
رسالة نصية
استخدام طريقتي التفويض التاليتين:
إرسال رسائل نصية
يصف هذا القسم كيفية إرسال الرسائل النصية بالطريقتين التاليتين:
- أرسل رسالة نصية في الوقت الفعلي من خلال الرد على تفاعل المستخدم.
- أرسِل رسالة نصية من خلال طلب البيانات من Google Chat API بشكل غير متزامن.
إرسال رسالة نصية في الوقت الفعلي
في هذا المثال، يُنشئ تطبيق Chat رسالة نصية ويرسلها كلما تمت إضافتها إلى مساحة. للتعرُّف على أفضل الممارسات لإعداد المستخدمين، يُرجى الاطّلاع على مقالة بدء إعداد المستخدمين والمساحات بطريقة مفيدة.
لإرسال رسالة نصية عندما يضيف مستخدم تطبيق Chat الخاص بك إلى مساحة، يتجاوب تطبيق Chat مع ADDED_TO_SPACE
حدث تفاعل. للردّ على أحداث تفاعل ADDED_TO_SPACE
باستخدام رسالة نصية، استخدِم الرمز التالي:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
exports.onMessage = function onMessage(req, res) {
if (req.method === 'GET' || !req.body.message) {
res.send(
'Hello! This function is meant to be used in a Google Chat space.');
}
// Send an onboarding message when added to a Chat space
if (req.body.type === 'ADDED_TO_SPACE') {
res.json({
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
learn what else I can do, type `/help`.'
});
}
};
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
function onAddToSpace(event) {
return {
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
what else I can do, type `/help`.'
}
}
يعرض نموذج الرمز البرمجي الرسالة النصية التالية:
إرسال رسالة نصية بشكل غير متزامن
يوضح القسم التالي كيفية إرسال رسالة نصية بشكل غير متزامن مع مصادقة التطبيق ومصادقة المستخدم.
لإرسال رسالة نصية، أدخِل ما يلي في طلبك:
- باستخدام مصادقة التطبيق، حدِّد نطاق تفويض
chat.bot
. باستخدام مصادقة المستخدم، حدِّد نطاق تفويضchat.messages.create
. - استدعِ
طريقة
create
في مرجعMessage
.
إرسال رسالة نصية تحتوي على مصادقة التطبيقات
في ما يلي كيفية إرسال رسالة نصية باستخدام مصادقة التطبيقات:
Python
- في دليل العمل، أنشئ ملفًا باسم
chat_create_text_message_app.py
. أدرِج الرمز التالي في
chat_create_text_message_app.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. CREDENTIALS = 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=CREDENTIALS) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
في الرمز، استبدِل
SPACE
باسم مساحة، ويمكنك الحصول عليه من خلال طريقةspaces.list()
في Chat API أو من عنوان URL للمساحة.في دليل العمل، أنشئ النموذج وشغِّله:
python3 chat_create_text_message_app.py
تعرض واجهة Chat API مثيلاً من
Message
يفصّل الرسالة المُرسَلة.
إرسال رسالة نصية مع مصادقة المستخدم
في ما يلي كيفية إرسال رسالة نصية تتضمن مصادقة المستخدم:
Python
- في دليل العمل، أنشئ ملفًا باسم
chat_create_text_message_user.py
. أدرِج الرمز التالي في
chat_create_text_message_user.py
:import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # 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.messages.create"] def main(): ''' Authenticates with Chat API via user credentials, then creates a text message in a Chat space. ''' # Start with no credentials. creds = None # 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().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body={'text': 'Hello, world!'} ).execute() # Prints details about the created message. print(result) if __name__ == '__main__': main()
في الرمز، استبدِل
SPACE
باسم مساحة، ويمكنك الحصول عليه من خلال طريقةspaces.list()
في Chat API أو من عنوان URL للمساحة.في دليل العمل، أنشئ النموذج وشغِّله:
python3 chat_create_text_message_user.py
تعرض واجهة Chat API مثيلاً من
Message
يفصّل الرسالة المُرسَلة.
إرسال رسائل البطاقة
يصف هذا القسم كيفية إرسال رسائل البطاقة بالطريقتين التاليتين:
- يمكنك إرسال رسالة بطاقة في الوقت الفعلي من خلال الردّ على تفاعل من المستخدم.
- أرسِل رسالة بطاقة من خلال طلب بيانات Google Chat API بشكل غير متزامن.
إرسال رسالة بطاقة في الوقت الفعلي
يمكن للتطبيقات في Chat إنشاء رسائل بطاقات للاستجابة إلى تفاعل أحد المستخدمين، مثلاً عندما يرسل المستخدم رسالة إلى تطبيق Chat أو يضيف تطبيق Chat إلى مساحة. لمزيد من المعلومات حول الاستجابة لتفاعلات المستخدمين، يمكنك الاطّلاع على تلقي أحداث التفاعل مع تطبيقات Chat والردّ عليها.
في هذا المثال، يرسل المستخدم رسالة إلى تطبيق Chat، ويردّ عليه تطبيق Chat بإرسال رسالة بطاقة تعرض اسم المستخدم وصورته الرمزية:
Node.js
Python
Apps Script
يرسل هذا المثال رسالة بطاقة من خلال عرض بطاقة JSON. يمكنك أيضًا استخدام خدمة بطاقة "برمجة تطبيقات Google".
إرسال رسالة بطاقة بشكل غير متزامن
لإرسال رسالة بطاقة، يُرجى تضمين ما يلي في طلبك:
- باستخدام مصادقة التطبيق، حدِّد نطاق تفويض
chat.bot
. لا يمكنك إرسال رسالة بطاقة بمصادقة المستخدم. - استدعِ
طريقة
create
في مرجعMessage
.
في ما يلي مثال على رسالة بطاقة:
في ما يلي كيفية إرسال رسالة بطاقة مع مصادقة التطبيقات:
Python
- في دليل العمل، أنشئ ملفًا باسم
chat_create_card_message.py
. أدرِج الرمز التالي في
chat_create_card_message.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. CREDENTIALS = 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=CREDENTIALS) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body= { 'cardsV2': [{ 'cardId': 'createCardMessage', 'card': { 'header': { 'title': 'A card message!', 'subtitle': 'Created with the Chat API', 'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png', 'imageType': 'CIRCLE' }, 'sections': [ { 'widgets': [ { 'buttonList': { 'buttons': [ { 'text': 'Read the docs!', 'onClick': { 'openLink': { 'url': 'https://developers.google.com/chat' } } } ] } } ] } ] } }] } ).execute() print(result)
في الرمز، استبدِل
SPACE
باسم مساحة، ويمكنك الحصول عليه من خلال طريقةspaces.list
في Chat API أو من عنوان URL للمساحة.في دليل العمل، أنشئ النموذج وشغِّله:
python3 chat_create_card_message.py
بدء سلسلة رسائل أو الرد عليها
لبدء سلسلة محادثات، أرسِل رسالة واترك
thread.name
فارغًا، حيث يملأها Google Chat عند إنشاء سلسلة المحادثات. إذا أردت تخصيص اسم سلسلة المحادثات، يمكنك تحديد الحقل
thread.threadKey
.
للرد على سلسلة محادثات، أرسِل رسالة تحدد الحقل threadKey
أو name
لسلسلة المحادثات. إذا تم إنشاء سلسلة المحادثات من قِبل مستخدم أو تطبيق آخر في Chat، عليك استخدام الحقل thread.name
.
إذا لم يتم العثور على سلسلة محادثات مطابقة، يمكنك تحديد ما إذا كان يجب أن تبدأ الرسالة سلسلة محادثات جديدة أو يتعذّر نشرها من خلال ضبط الحقل messageReplyOption
.
إذا تم ضبط السمة messageReplyOption
،
يجب أيضًا ضبط السمة thread.name
أو thread.threadKey
.
إليك كيفية بدء سلسلة محادثات أو الرد عليها باستخدام الحقل threadKey
الذي تم تحديده على أنّه
nameOfThread
:
Python
- في دليل العمل، أنشئ ملفًا باسم
chat_create_message_thread.py
. أدرِج الرمز التالي في
chat_create_message_thread.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. CREDENTIALS = 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=CREDENTIALS) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # Whether to start a thread or reply to an existing one. # # Required when threading is enabled in a space unless starting a # thread. Ignored in other space types. Threading is enabled when # space.spaceThreadingState is THREADED_MESSAGES. # # REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD replies to an existing thread # if one exists, otherwise it starts a new one. messageReplyOption='REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD', # The message body. body={ # The message to create. 'text': 'Start or reply to another message in a thread!', # The thread to start or reply to. 'thread': { 'threadKey': 'nameOfThread' } } ).execute() print(result)
في الرمز، استبدِل
SPACE
باسم مساحة، ويمكنك الحصول عليه من خلال طريقةspaces.list
في Chat API أو من عنوان URL للمساحة.في دليل العمل، أنشئ النموذج وشغِّله:
python3 chat_create_message_thread.py
تعرض واجهة Chat API مثيلاً من
Message
يفصّل الرسالة المُرسَلة.
تسمية رسالة
يشرح هذا القسم كيفية تسمية رسالة من خلال تعيين معرّف مخصص للرسالة. يمكنك استخدام المعرّفات المخصّصة للحصول على الرسائل أو تعديلها أو حذفها. تتيح لك المعرّفات المخصّصة
تحديد رسالة بدون الحاجة إلى تخزين المعرّف الذي يعيّنه النظام
من اسم مورد الرسالة (الممثّل في الحقل name
). يتم إنشاء اسم المورد في نص الاستجابة عند إنشاء الرسالة.
على سبيل المثال، لاسترداد رسالة باستخدام الطريقة get()
، يمكنك استخدام
اسم المورد لتحديد الرسالة المطلوب استردادها. يتم تنسيق اسم المورد بالتنسيق spaces/{space}/messages/{message}
، حيث يمثّل {message}
المعرّف الذي خصّصه النظام. إذا اخترت اسم الرسالة، يمكنك استبدال
قيمة {message}
بالمعرّف المخصّص.
لتسمية رسالة، حدِّد معرّفًا مخصّصًا في الحقل
messageId
عند إنشاء الرسالة. ويضبط الحقل messageId
قيمة للحقل
clientAssignedMessageId
في المورد Message
.
لا يمكنك تسمية رسالة إلا عند إنشائها. لا يمكنك تسمية معرّف مخصص أو تعديله للرسائل الحالية. يجب أن يستوفي المعرّف المخصّص المتطلبات التالية:
- يبدأ بـ
client-
. على سبيل المثال، يُعدّclient-custom-name
معرّفًا مخصّصًا صالحًا، على عكسcustom-name
. - يشتمل على ما يصل إلى 63 حرفًا، ويمكن أن يشمل أحرفًا صغيرة وأرقامًا وواصلات فقط.
- أن تكون فريدة داخل مساحة لا يمكن لتطبيق Chat استخدام المعرّف المخصّص نفسه لرسائل مختلفة
في ما يلي كيفية إرسال رسالة باستخدام معرّف مخصّص:
Python
- في دليل العمل، أنشئ ملفًا باسم
chat_create_named_message.py
. أدرِج الرمز التالي في
chat_create_named_message.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. CREDENTIALS = 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=CREDENTIALS) # Create a Chat message with a custom name. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # Custom name for the message used to facilitate later operations. messageId='client-NAME', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
في الرمز، استبدل ما يلي:
SPACE
: رقم تعريف المساحة التي تريد نشر الرسالة فيها، والذي يمكنك الحصول عليه من خلال طريقةspaces.list
في Chat API أو من عنوان URL للمساحة.NAME
: الاسم المخصّص للرسالة
في دليل العمل، أنشئ النموذج وشغِّله:
python3 chat_create_named_message.py
تعرض واجهة Chat API مثيلاً لـ
Message
.
إضافة تطبيقات مصغّرة تفاعلية في أسفل الرسالة
يمكنك اختياريًا إلحاق الرسائل باستخدام التطبيقات المصغّرة الملحقة. تظهر التطبيقات المصغّرة للملحقات بعد أيّ نص أو بطاقات في الرسالة. يمكنك استخدام هذه الأدوات لتشجيع المستخدمين على التفاعل مع رسالتك بطرق عديدة، بما في ذلك ما يلي:
- قيِّم دقة رسالة أو مدى رضاها.
- يمكنك الإبلاغ عن مشكلة في الرسالة أو تطبيق Chat.
- افتح رابطًا يؤدي إلى محتوى ذي صلة، مثل المستندات.
- رفض الرسائل المشابهة أو تأجيلها من تطبيق Chat لفترة زمنية محدّدة
لإضافة التطبيقات المصغّرة للملحقات، عليك تضمين
كائن accessoryWidgets[]
في الرسالة وتحديد عنصر أو أكثر من
AccessoryWidgets
الذي تريد تضمينه. يجب أن تكون الرسالة مرئية للجميع في المساحة (لا يمكنك إضافة تطبيقات مصغّرة إلى الرسائل الخاصة).
تعرِض الصورة التالية تطبيق Chat يُلحق رسالة نصية بها التطبيقات المصغّرة للملحقات كي يتمكّن المستخدمون من تقييم تجربتهم مع تطبيق Chat.
يعرض نموذج الرمز البرمجي التالي ملف JSON لهذه الرسالة. عندما ينقر المستخدم على أحد الأزرار، يؤدي التفاعل إلى تشغيل الدالة المقابلة (مثل doUpvote
) التي تعالج التقييم.
"text": "Rate your experience with this Chat app.",
"accessoryWidgets": [
{
"buttonList": {
"buttons": [
{
"icon": {
"material_icon": {
"name": "thumb_up"
}
},
"color": {
"red": 0,
"blue": 255,
"green": 0
},
"onClick": {
"action": {
"function": "doUpvote",
}
}
},
{
"icon": {
"material_icon": {
"name": "thumb_down"
}
},
"color": {
"red": 0,
"blue": 255,
"green": 0
},
"onClick": {
"action": {
"function": "doDownvote",
}
}
}
]
}
}
]
إرسال الرسائل بخصوصية تامة
يمكن لتطبيقات Chat إرسال رسائل نصية ورسائل إلكترونية بخصوصية تامة، كي لا تظهر الرسالة إلا لمستخدم واحد في المساحة. لإرسال رسالة خاصة، عليك تحديد الحقل privateMessageViewer
في الرسالة. يمكن لتطبيقات Chat فقط إرسال رسائل خاصة. لإرسال رسالة خاصة بشكل غير متزامن، عليك استخدام مصادقة التطبيقات.
لمعرفة التفاصيل، يُرجى الاطّلاع على مقالة إرسال رسائل خاصة إلى مستخدمي Google Chat.
تحديد المشاكل وحلّها
عندما يعرض تطبيق أو بطاقة Google Chat رسالة خطأ، تعرض واجهة Chat رسالة مفادها "حدث خطأ". أو "تعذَّرت معالجة طلبك". في بعض الأحيان، لا تعرض واجهة مستخدم Chat أي رسالة خطأ، ولكن يعرض تطبيق Chat أو بطاقة بياناته نتيجة غير متوقعة، على سبيل المثال، قد لا تظهر رسالة بطاقة.
على الرغم من أنّ رسالة الخطأ قد لا تظهر في واجهة مستخدم Chat، تتوفّر رسائل الخطأ الوصفية وبيانات السجلّ لمساعدتك في إصلاح الأخطاء عند تفعيل ميزة تسجيل الأخطاء في تطبيقات Chat. للحصول على مساعدة بشأن الاطّلاع على الأخطاء وتصحيحها وتصحيحها، راجِع تحديد المشاكل في Google Chat وحلّها.
مواضيع ذات صلة
- تنسيق الرسالة:
- الحصول على تفاصيل حول رسالة
- إدراج الرسائل في مساحة
- تعديل رسالة
- حذف رسالة
- تحديد المستخدمين في رسائل Google Chat
- إرسال الرسائل إلى Google Chat باستخدام الردود التلقائية الواردة على الويب