Google Chat kullanıcılarına özel mesaj gönderme

Bu sayfada, Google Chat uygulaması olarak özel mesaj oluşturma ve gönderme hakkında bilgi verilmektedir.

Özel mesaj, yalnızca belirli bir Chat kullanıcısı tarafından görülebilen bir Chat uygulaması mesajıdır. Birden fazla kişiyle alanlarda özel mesajlar kullanarak bu kişilerin Chat uygulamalarıyla özel olarak etkileşimde bulunabilmelerini sağlayabilirsiniz. Örneğin, Chat uygulamanız aşağıdaki işlemleri yapmak için gizli olarak mesaj gönderebilir:

  • Eğik çizgi komutuna yanıt verin. Örneğin, bir kullanıcı bir alanda Chat uygulamanızın /about eğik çizgi komutunu çağırırsa Chat uygulamanız, Chat uygulamanızın ne yaptığını ve nasıl kullanıldığını açıklayan bir özel mesajla yanıt verebilir.
  • Yalnızca tek bir kullanıcıyla alakalı bilgileri bilgilendirme veya gönderme. Örneğin, kullanıcıya bir görev atandığını bildirebilir veya görevi tamamlamasını hatırlatabilirsiniz.
  • Hata mesajı gönderin. Örneğin, kullanıcı eğik çizgi komutu için gerekli bağımsız değişken metnini atlarsa Chat uygulaması, hatayı açıklayan ve kullanıcının komutu biçimlendirmesine yardımcı olan bir özel mesaj gönderebilir.

Bir Chat uygulaması özel mesaj gönderdiğinde mesaj, kullanıcıya mesajı yalnızca kendisinin görebildiğini bildiren bir etiket gösterir:

Cymbal Labs Chat uygulaması için özel mesaj. Mesajda, Chat uygulamasının Cymbal Labs tarafından oluşturulduğu belirtiliyor. Bu mesajda, dokümanların bağlantısı ile destek ekibiyle iletişime geçebileceğiniz bir bağlantı paylaşılıyor.
Şekil 1: Bir Chat uygulaması özel mesaj gönderdiğinde kullanıcı, Only visible to you etiketine sahip bir mesaj görür.

Ön koşullar

Node.js

Not: Bu kılavuzdaki Node.js kod örnekleri, Google Cloud Functions olarak çalışacak şekilde yazılmıştır.

Python

Not: Bu kılavuzdaki Python kod örnekleri, Python 3.10 kullanılarak Google Cloud Functions olarak çalışacak şekilde yazılmıştır.

Apps Komut Dosyası

Özel mesaj gönderin

Chat uygulaması olarak gizli olarak mesaj göndermek için mesajı oluştururken privateMessageViewer alanını belirtirsiniz. Herhangi bir mesaj oluşturduğunuz gibi, özel mesajları bir kullanıcı etkileşimine yanıt vererek veya Message kaynağında eşzamansız olarak Google Chat API'nin create() yöntemini çağırarak oluşturursunuz. Kısa mesaj veya kart mesajı gönderme adımları için Mesaj gönderme başlıklı makaleyi inceleyin.

Aşağıdaki örnekte, Hello private world! yazan bir özel kısa mesajın JSON dosyası gösterilmektedir:

{
    "text": "Hello private world!",
    "privateMessageViewer": "USER"
}

Bu örnekte USER, mesajı User kaynağı olarak biçimlendirilmiş şekilde görüntüleyebilen Chat kullanıcısını temsil eder. Bir kullanıcı etkileşimine yanıt veriyorsanız etkileşim etkinliğinden User nesnesini belirtebilirsiniz. Örnek için aşağıdaki Eğik çizgi komutuna özel olarak yanıt verme bölümüne bakın.

Aksi takdirde, özel mesaj için görüntüleyiciyi belirtmek üzere User kaynağının name alanını kullanabilirsiniz:

{
    "text": "Hello private world!",
    "privateMessageViewer": {
      "name": "users/USER_ID"
    }
}

Bu örnekte, Google Chat'te görüntüleyenin User kaynak adını belirtmek için name alanını kullanırsınız. USER_ID kısmını, 12345678987654321 veya hao@cymbalgroup.com gibi kullanıcı için benzersiz bir kimlikle değiştirin.

Kullanıcı belirtme hakkında daha fazla bilgi edinmek için Google Chat kullanıcılarını belirleme ve belirtme başlıklı makaleye göz atın.

Eğik çizgi komutuna özel olarak yanıt verme

Aşağıdaki kod, eğik çizgi komutuna özel mesajla yanıt veren bir Chat uygulaması örneğini gösterir.

Chat uygulaması bir MESSAGE etkileşim etkinliğini işler ve /help eğik çizgi komutuna nasıl kullanılacağını açıklayan özel bir kısa mesajla yanıt verir:

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.'
  });
};

Apps Komut Dosyası

/**
* 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 };
  }
}

Python

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.',
  }

Sınırlamalar

Özel mesaj göndermek için mesaj şunları içeremez veya kullanamaz:

  • Ekler.
  • Aksesuar işlemleri.
  • Kısmen özel mesajlar. Örneğin, Chat uygulaması, metin ve kart içeren mesajlar gönderilemez. Bu mesajda metnin yalnızca bir kullanıcı tarafından görülebildiği ancak kart, alandaki herkesin görebildiği mesajlardır.
  • Kullanıcı kimlik doğrulaması. Yalnızca Chat uygulamaları özel mesaj gönderebilir. Bu nedenle Chat uygulamanız, gizli olarak mesaj göndermek için kullanıcı olarak kimlik doğrulaması yapamaz.

Özel iletileri güncelleme veya silme

Google Chat mesajlarını güncellemek veya silmek için Chat API'yi çağırmanız gerekir. Özel mesajın görüntüleyicisini değiştiremez veya mesajı herkese açık hale getiremezsiniz. Bu nedenle, özel mesajları güncellerken API çağrısındaki privateMessageViewer alanını çıkarmanız gerekir (alan yalnızca çıkıştır).

Bir özel mesajı güncellemek için Mesajı güncelleme başlıklı makaleyi inceleyin. Özel bir mesajı silmek için Mesajı silme başlıklı makaleyi inceleyin.