این صفحه نحوه ایجاد و ارسال پیام های خصوصی را به عنوان یک برنامه چت Google توضیح می دهد.
پیام خصوصی یک پیام برنامه چت است که فقط برای یک کاربر مشخص شده چت قابل مشاهده است. میتوانید از پیامهای خصوصی در فضاهایی با چند نفر استفاده کنید تا بتوانند به طور خصوصی با برنامههای چت تعامل داشته باشند. برای مثال، برنامه Chat شما میتواند به صورت خصوصی پیامهایی را برای انجام یکی از موارد زیر ارسال کند:
- به یک دستور اسلش پاسخ دهید. برای مثال، اگر کاربری دستور
/about
slash برنامه Chat شما را در یک فاصله فراخوانی کند، برنامه Chat شما میتواند با یک پیام خصوصی پاسخ دهد که توضیح میدهد برنامه Chat شما چه کار میکند و چگونه از آن استفاده میکند. - اطلاعاتی را که فقط مربوط به یک کاربر است اطلاع دهید یا ارسال کنید. به عنوان مثال، به کاربر اطلاع دهید که کاری به او محول شده است یا به او یادآوری کنید که کار را کامل کند.
- پیام خطا ارسال کنید. برای مثال، اگر کاربر متن آرگومان مورد نیاز را برای دستور اسلش حذف کند، برنامه Chat میتواند یک پیام خصوصی برای توضیح خطا ارسال کند و به کاربر در قالببندی دستور کمک کند.
هنگامی که یک برنامه چت یک پیام خصوصی ارسال می کند، پیام برچسبی را نشان می دهد که به کاربر اطلاع می دهد که پیام فقط برای او قابل مشاهده است:
پیش نیازها
Node.js
- یک پروژه Google Cloud با Google Chat API فعال و پیکربندی شده است. برای مراحل، به ساخت برنامه گپ Google مراجعه کنید.
- برای پاسخ دادن خصوصی به یک دستور اسلش، یک دستور اسلش برای برنامه چت پیکربندی شده است. برای ساختن یکی، پاسخ به دستورات اسلش را ببینید.
- برای ارسال پیام خصوصی با استفاده از روش
messages.create()
باید از احراز هویت برنامه استفاده کنید.
توجه: نمونه کد Node.js در این راهنما برای اجرا به عنوان یک تابع Google Cloud نوشته شده است.
پایتون
- یک پروژه Google Cloud با Google Chat API فعال و پیکربندی شده است. برای مراحل، به ساخت برنامه گپ Google مراجعه کنید.
- برای پاسخ دادن خصوصی به یک دستور اسلش، یک دستور اسلش برای برنامه چت پیکربندی شده است. برای ساختن یکی، پاسخ به دستورات اسلش را ببینید.
- برای ارسال پیام خصوصی با استفاده از روش
messages.create()
باید از احراز هویت برنامه استفاده کنید.
توجه: نمونه کدهای پایتون در این راهنما برای اجرا به عنوان یک تابع Google Cloud با استفاده از Python 3.10 نوشته شده است.
اسکریپت برنامه ها
- یک برنامه چت برای ایجاد یک برنامه چت، این شروع سریع را دنبال کنید.
- برای پاسخ دادن خصوصی به یک دستور اسلش، یک دستور اسلش برای برنامه چت پیکربندی شده است. برای ساختن یکی، پاسخ به دستورات اسلش را ببینید.
- برای ارسال پیام خصوصی با استفاده از روش
messages.create()
باید از احراز هویت برنامه استفاده کنید.
یک پیام خصوصی بفرستید
برای ارسال یک پیام به صورت خصوصی به عنوان یک برنامه چت، هنگام ایجاد پیام، فیلد privateMessageViewer
را در پیام مشخص کنید. شما پیامهای خصوصی را درست مانند هر پیامی ایجاد میکنید: با پاسخ دادن به تعامل کاربر، یا فراخوانی ناهمزمان متد create()
Google Chat API در منبع Message
. برای مراحل ارسال پیام های متنی یا کارتی، به ارسال پیام مراجعه کنید.
مثال زیر JSON را برای یک پیام متنی خصوصی نشان می دهد که می گوید Hello private world!
:
{
"text": "Hello private world!",
"privateMessageViewer": "USER"
}
در این مثال، USER
کاربر چت را نشان میدهد که میتواند پیام را که به عنوان منبع User
قالببندی شده است، مشاهده کند. اگر به یک تعامل کاربر پاسخ می دهید، می توانید شی User
را از رویداد تعامل مشخص کنید. به عنوان مثال، بخش زیر را ببینید به صورت خصوصی به دستور اسلش پاسخ دهید .
در غیر این صورت، برای تعیین بیننده برای پیام خصوصی، می توانید از قسمت name
منبع User
استفاده کنید:
{
"text": "Hello private world!",
"privateMessageViewer": {
"name": "users/USER_ID"
}
}
در این مثال، شما از فیلد name
برای تعیین نام منبع User
بیننده در چت گوگل استفاده می کنید. USER_ID
با یک شناسه منحصر به فرد برای کاربر، مانند 12345678987654321
یا hao@cymbalgroup.com
جایگزین کنید.
برای اطلاعات بیشتر درباره تعیین کاربران، به شناسایی و تعیین کاربران گپ Google مراجعه کنید.
به یک دستور اسلش به صورت خصوصی پاسخ دهید
کد زیر نمونه ای از یک برنامه چت را نشان می دهد که به دستور اسلش با یک پیام خصوصی پاسخ می دهد.
برنامه چت یک رویداد تعاملی MESSAGE
را پردازش میکند و با یک پیام متنی خصوصی که نحوه استفاده از آن را توضیح میدهد، به دستور اسلش /help
پاسخ میدهد:
Node.js
/**
* Responds to a MESSAGE event in Google Chat.
*
* @param {!Object} req Request sent from Google Chat app
* @param {!Object} res Response to send back
*
* @return {!Object} respond to slash command
*/
exports.onMessage = function onMessage(req, res) {
if (req.method === 'GET' || !req.body.message) {
return res.send('Hello! This function is meant to be used in Google Chat app.');
}
const event = req.body;
// Checks for the presence of event.message.slashCommand.
// If the slash command is "/help", responds with a private text message.
if (event.message.slashCommand) {
switch (event.message.slashCommand.commandId) {
case '1': // /help
return res.json({
privateMessageViewer: event.user,
text: 'This Chat app was created by Cymbal Labs. To get help with this app, <https://cymbalgroup.com/docs|see our documentation> or <https://cymbalgroup.com/support|contact our support team>.'
});
}
}
// If the Chat app doesn't detect a slash command, it responds
// with a private text message
return res.json({
privateMessageViewer: event.user,
text: 'Try a slash command.'
});
};
اسکریپت برنامه ها
/**
* Responds to a MESSAGE event in Google Chat.
*
* @param {Object} event the event object from Google Chat
*/
function onMessage(event) {
if (event.message.slashCommand) {
switch (event.message.slashCommand.commandId) {
case 1: // Responds to /help
return {
"privateMessageViewer": event.user,
"text": "This Chat app was created by Cymbal Labs. To get help with this app, <https://cymbalgroup.com/docs|see our documentation> or <https://cymbalgroup.com/support|contact our support team>."
};
}
}
else {
return { "text": "Try a slash command.", "privateMessageViewer": event.user };
}
}
پایتون
from typing import Any, Mapping
import flask
import functions_framework
@functions_framework.http
def main(req: flask.Request) -> Mapping[str, Any]:
"""Responds to a MESSAGE event in Google Chat.
Args:
req (flask.Request): the event object from Chat API.
Returns:
Mapping[str, Any]: open a Dialog in response to a card's button click.
"""
if req.method == 'GET':
return 'Hello! This function must be called from Google Chat.'
request = req.get_json(silent=True)
# Checks for the presence of event.message.slashCommand.
# If the slash command is "/help", responds with a private text message.
if request.get('message', {}).get('slashCommand'):
command_id = request.get('message', {}).get('slashCommand').get('commandId')
if command_id == '1': # /help
return {
'privateMessageViewer': request.get('user'),
'text': (
'This Chat app was created by Cymbal Labs. To get help with this'
' app, <https://cymbalgroup.com/docs|see our documentation> or'
' <https://cymbalgroup.com/support|contact our support team>.'
),
}
return {
'privateMessageViewer': request.get('user'),
'text': 'Try a slash command.',
}
محدودیت ها
برای ارسال یک پیام خصوصی، پیام نمی تواند حاوی موارد زیر باشد یا از آن استفاده کند:
- پیوست ها .
- اقدامات جانبی
- پیام های نیمه خصوصی به عنوان مثال، یک برنامه چت نمی تواند پیامی با متن ارسال کند و کارتی که متن آن فقط برای یک کاربر قابل مشاهده است اما کارت برای همه افراد موجود در فضا قابل مشاهده است.
- احراز هویت کاربر . فقط برنامههای چت میتوانند پیامهای خصوصی ارسال کنند، بنابراین برنامه چت شما نمیتواند به عنوان کاربر برای ارسال پیام خصوصی تأیید اعتبار کند.
به روز رسانی یا حذف پیام های خصوصی
برای بهروزرسانی یا حذف پیامهای Google Chat، باید با Chat API تماس بگیرید. شما نمی توانید بیننده پیام خصوصی را تغییر دهید یا پیام را عمومی کنید. بنابراین، هنگامی که پیام های خصوصی را به روز می کنید، باید فیلد privateMessageViewer
را در تماس API حذف کنید (این فیلد فقط خروجی است).
برای به روز رسانی یک پیام خصوصی، به به روز رسانی یک پیام مراجعه کنید. برای حذف یک پیام خصوصی، به حذف یک پیام مراجعه کنید.
مطالب مرتبط
- ارسال یک پیام
- کاربران چت گوگل را شناسایی و مشخص کنید
- به دستورات اسلش پاسخ دهید
- یک پیام را به روز کنید
- یک پیام را حذف کنید