Google Chat'te eğik çizgiyle başlayan komutlara yanıt verme

Bu sayfada, Google Chat uygulamasının eğik çizgi komutlarına yanıt vermesi için nasıl yapılandırılacağı açıklanmaktadır.

Google Chat'te eklentiler kullanıcılara Google Chat uygulamaları olarak görünür. Daha fazla bilgi edinmek için Google Chat'i genişletme başlıklı makaleyi inceleyin.

Eğik çizgi komutu, kullanıcıların Chat uygulamasını çağırıp uygulamayla etkileşime geçmesinin yaygın bir yoludur. Eğik çizgi komutları, kullanıcıların Chat uygulamasının önemli özelliklerini keşfetmesine ve kullanmasına da yardımcı olur. Eğik çizgi komutları oluşturup oluşturmayacağınıza karar vermek ve kullanıcı etkileşimlerini nasıl tasarlayacağınızı öğrenmek için Chat API dokümanlarında Tüm kullanıcı yolculuklarını tanımlama bölümüne bakın.

Kullanıcılar eğik çizgi komutlarını nasıl kullanır?

Eğik çizgi komutu kullanmak için kullanıcılar eğik çizgi (/) ve ardından kısa bir metin komutu yazar. Örneğin, Chat uygulaması hakkında bilgi almak için /about yazarlar. Kullanıcılar, Google Chat'e eğik çizgi yazarak mevcut eğik çizgi komutlarını keşfedebilir. Bu komutlar, Chat uygulaması için kullanılabilen komutları listeleyen bir pencerede gösterilir:

Eğik çizgi komutu penceresi
Şekil 1: Kullanıcılar Google Chat'e eğik çizgi yazdığında görünen pencere.

Bir kullanıcı eğik çizgi komutu içeren bir mesaj gönderdiğinde bu mesaj yalnızca kullanıcı ve Chat uygulaması tarafından görülebilir. Chat uygulamanızı birden fazla kullanıcının bulunduğu alanlara eklenecek şekilde yapılandırdıysanız kullanıcı ile Chat uygulaması arasındaki etkileşimi gizli tutmak için eğik çizgi komutuna gizli olarak yanıt verebilirsiniz.

Örneğin, bir alanda keşfettikleri Chat uygulaması hakkında bilgi edinmek için kullanıcılar /about veya /help gibi komutları kullanabilir. Chat uygulaması, alandaki diğer kullanıcıları bilgilendirmemek için Chat uygulamasının nasıl kullanılacağı ve destek alma hakkında bilgilerle özel olarak yanıt verebilir.

Ön koşullar

Node.js

Google Chat'i genişleten bir Google Workspace eklentisi. Bir tane oluşturmak için HTTP hızlı başlangıç kılavuzunu tamamlayın.

Apps Komut Dosyası

Google Chat'i genişleten bir Google Workspace eklentisi. Oluşturmak için Apps Komut Dosyası hızlı başlangıç kılavuzunu tamamlayın.

Eğik çizgi komutu oluşturma

Bu bölümde, eğik çizgi komutu oluşturmak için aşağıdaki adımları nasıl tamamlayacağınız açıklanmaktadır:

  1. Eğik çizgi komutunuz için bir ad oluşturun.
  2. Google Chat API'de eğik çizgi komutunu yapılandırın.

Eğik çizgi komutunuza ad verin

Eğik çizgi komutunun adı, kullanıcıların Chat uygulamasını çağırmak için Chat mesajına yazdıkları şeydir. Adın altında, kullanıcılara komutun nasıl kullanılacağı hakkında daha fazla bilgi veren kısa bir açıklama da gösterilir:

Eğik çizgi komutu adı ve açıklaması
Şekil 2: Eğik çizgi komutunun adı ve açıklaması.

Slash komutunuz için ad ve açıklama seçerken aşağıdaki önerileri göz önünde bulundurun:

  • Eğik çizgi komutunuzu adlandırmak için:

    • Komutları kullanıcı için net ve basit hale getirmek amacıyla kısa, açıklayıcı ve işlem yapılabilir kelimeler veya kelime öbekleri kullanın. Örneğin, /createAReminder yerine /remindMe yazın.
    • Komutunuz birden fazla kelimeden oluşuyorsa ilk kelime için tümüyle küçük harfleri, diğer kelimelerin ilk harfini büyük yazarak kullanıcıların komutu okumasına yardımcı olun. Örneğin, /updatecontact yerine /updateContact kullanın.
    • Komutunuz için benzersiz mi yoksa yaygın bir ad mı kullanacağınızı düşünün. Komutunuz tipik bir etkileşimi veya özelliği tanımlıyorsa kullanıcıların tanıdığı ve beklediği yaygın bir ad (ör. /settings veya /feedback) kullanabilirsiniz. Aksi takdirde, benzersiz komut adları kullanmayı deneyin. Aksi takdirde, komut adınız diğer Chat uygulamalarıyla aynıysa kullanıcının komutunuzu bulup kullanması için benzer komutları filtrelemesi gerekir.
  • Eğik çizgi komutunuzu açıklamak için:

    • Kullanıcıların komutu çağırdığında ne beklemeleri gerektiğini bilmesi için açıklamayı kısa ve net tutun.
    • Komut için biçimlendirme şartları olup olmadığını kullanıcılara bildirin. Örneğin, bağımsız değişken metni gerektiren bir /remindMe komutu oluşturursanız açıklamayı Remind me to do [something] at [time] gibi bir değere ayarlayın.
    • Chat uygulamasının alandaki herkese mi yoksa komutu çağıran kullanıcıya özel olarak mı yanıt vereceğini kullanıcılara bildirin. Örneğin, eğik çizgi komutu /about için Learn about this app (Only visible to you) ifadesini kullanabilirsiniz.

Google Chat API'de eğik çizgi komutunuzu yapılandırma

Eğik çizgi komutu oluşturmak için Chat uygulamanızın Google Chat API yapılandırmasında komutla ilgili bilgileri belirtmeniz gerekir.

Google Chat API'de eğik çizgi komutunu yapılandırmak için aşağıdaki adımları uygulayın:

  1. Google Cloud Console'da Menü > API'ler ve Hizmetler > Etkin API'ler ve Hizmetler > Google Chat API'yi tıklayın.

    Google Chat API sayfasına gidin

  2. Yapılandırma'yı tıklayın.

  3. Gelişmiş ayarlar bölümünde Tetikleyiciler'e gidin ve MESAJ alanının bir HTTP uç noktası veya Apps Script işlevi gibi bir tetikleyici içerdiğini kontrol edin. Aşağıdaki bölümde, eğik çizgi komutuna yanıt vermek için bu tetikleyiciyi kullanmanız gerekir.

  4. Eğik çizgi komutları bölümünde Eğik çizgi komutu ekle'yi tıklayın.

  5. Komut için bir ad, komut kimliği ve açıklama girin:

    1. Ad: Komutun görünen adı ve kullanıcıların uygulamanızı çağırmak için yazdığı metin. / ile başlamalı, yalnızca metin içermeli ve en fazla 50 karakter uzunluğunda olmalıdır.
    2. Açıklama: Komutun nasıl kullanılacağını ve biçimlendirileceğini açıklayan metin. Açıklamalar en fazla 50 karakter olabilir.
    3. Komut kimliği: Chat uygulamanızın eğik çizgi komutunu tanımak ve yanıt döndürmek için kullandığı 1 ile 1.000 arasında bir sayı.
  6. İsteğe bağlı: Chat uygulamanızın komuta bir iletişim kutusuyla yanıt vermesini istiyorsanız İletişim kutusu aç onay kutusunu işaretleyin.

  7. Kaydet'i tıklayın.

Eğik çizgi komutu artık Chat uygulaması için yapılandırılmıştır.

Eğik çizgi komutuna yanıt verme

Kullanıcılar Chat mesajı oluşturduğunda Chat uygulamanız, mesajla ilgili bilgileri içeren bir etkinlik nesnesi alır. Etkinlik nesnesi, uygun bir yanıt döndürebilmeniz için mesajda kullanılan komutla ilgili ayrıntıları (komut kimliği dahil) içeren bir yük içerir.

Eğik çizgi komutuna yanıt vermek için Chat uygulamanızın eğik çizgi komutu meta verilerini içeren tüm etkinlik nesnelerini işleyebilmesi amacıyla Mesaj tetikleyicisini uygulamanız gerekir.

Cymbal Labs Chat uygulamasına gönderilen özel mesaj. Mesajda, Chat uygulamasının Cymbal Labs tarafından oluşturulduğu belirtilir ve dokümanların yanı sıra destek ekibiyle iletişime geçebileceğiniz bir bağlantı paylaşılır.
Chat uygulaması, nasıl destek alacağınızı açıklamak için eğik çizgi komutuna /help özel olarak yanıt verir.

Aşağıdaki kodda, /about eğik çizgi komutunu metin mesajıyla yanıtlayan bir Chat uygulaması örneği gösterilmektedir. Sohbet uygulaması, eğik çizgi komutlarına yanıt vermek için Mesaj tetikleyicisinden gelen etkinlik nesnelerini işler. Bir etkinlik nesnesinin yükü eğik çizgi komut kimliği içerdiğinde Chat uygulaması, DataActions işlemini createMessageAction nesnesi ile döndürür:

Node.js

// The ID of the slash command "/about".
// It's not enabled by default, set to the actual ID to enable it. You must
// use the same ID as set in the Google Chat API configuration.
const ABOUT_COMMAND_ID = 0;

/**
 * Google Cloud Function that responds to messages sent from a
 * Google Chat space.
 *
 * @param {Object} req Request sent from Google Chat space
 * @param {Object} res Response to send back
 */
exports.avatarApp = function avatarApp(req, res) {
    if (req.method === 'GET' || !req.body.chat) {
        return res.send('Hello! This function is meant to be used ' +
            'in a Google Chat Space.');
    }

    // Stores the Google Chat event as a variable.
    const chatMessage = req.body.chat.messagePayload.message;

    if (chatMessage.slashCommand) {
        // Executes the slash command logic based on its ID.
        // Slash command IDs are set in the Google Chat API configuration.
        switch (chatMessage.slashCommand.commandId) {
            case ABOUT_COMMAND_ID:
                return res.send({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
                    text: 'The Avatar app replies to Google Chat messages.'
                }}}}});
        }
    }

    // Replies with the sender's avatar in a card otherwise.
    const displayName = chatMessage.sender.displayName;
    const avatarUrl = chatMessage.sender.avatarUrl;
    res.send({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
        text: 'Here\'s your avatar',
        cardsV2: [{
            cardId: 'avatarCard',
            card: {
                name: 'Avatar Card',
                header: {
                    title: `Hello ${displayName}!`,
                },
                sections: [{
                    widgets: [{
                        textParagraph: { text: 'Your avatar picture: ' }
                    }, {
                        image: { imageUrl: avatarUrl }
                    }]
                }]
            }
        }]
    }}}}});
};

Apps Komut Dosyası

// The ID of the slash command "/about".
// It's not enabled by default, set to the actual ID to enable it. You must
// use the same ID as set in the Google Chat API configuration.
const ABOUT_COMMAND_ID = 0;

/**
 * Responds to a MESSAGE event in Google Chat.
 *
 * @param {Object} event the event object from Google Chat
 */
function onMessage(event) {
    // Stores the Google Chat event as a variable.
    const chatMessage = event.chat.messagePayload.message;

    if (chatMessage.slashCommand) {
        // Executes the slash command logic based on its ID.
        // Slash command IDs are set in the Google Chat API configuration.
        switch (chatMessage.slashCommand.commandId) {
            case ABOUT_COMMAND_ID:
                return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
                    text: 'The Avatar app replies to Google Chat messages.'
                }}}}};
        }
    }

    // Replies with the sender's avatar in a card otherwise.
    const displayName = chatMessage.sender.displayName;
    const avatarUrl = chatMessage.sender.avatarUrl;
    return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
        text: 'Here\'s your avatar',
        cardsV2: [{
            cardId: 'avatarCard',
            card: {
                name: 'Avatar Card',
                header: {
                    title: `Hello ${displayName}!`,
                },
                sections: [{
                    widgets: [{
                        textParagraph: { text: 'Your avatar picture: ' }
                    }, {
                        image: { imageUrl: avatarUrl }
                    }]
                }]
            }
        }]
    }}}}};
}

Bu kod örneğini kullanmak için ABOUT_COMMAND_ID değerini, Chat API'de eğik çizgi komutunu yapılandırırken belirttiğiniz komut kimliğiyle değiştirin.