Bir Google Chat uygulaması için uygulama ana kartı mesajı gönderme

Bu sayfada, Chat uygulamanız için uygulama ana kartı mesajını nasıl oluşturup göndereceğiniz açıklanmaktadır. Uygulama ana sayfası, bir kullanıcı Chat uygulamasıyla doğrudan mesaj açtığında Chat uygulamasının kullanıcıya gönderdiği özelleştirilebilir bir kart mesajıdır.

İki mesaj içeren uygulama ana kartı.

Örneğin, uygulama ana kartı mesajını, eğik çizgi komutları kullanarak Chat uygulamasıyla etkileşimde bulunmaya ilişkin ipuçları içerecek şekilde yapılandırabilirsiniz. Son kullanıcılar için uygulama ana sayfası, yalnızca uygulama geliştiricisi bu özelliği etkinleştirirse Chat uygulamasının doğrudan mesajında kullanılabilir.


Chat uygulamaları için JSON kartı mesajlarını tasarlamak ve önizlemek üzere Kart Oluşturucu'yu kullanın:

Card Builder'ı açın

Ön koşullar

Python

Apps Komut Dosyası

Google Cloud Console'da yapılandırın

Python

  1. Google Cloud Console'da Menü > Diğer ürünler > Google Workspace > Ürün Kitaplığı > Google Chat API'ye gidin.

    Google Chat API'ye gidin

  2. Manage'ı (Yönet) ve ardından Configuration (Yapılandırma) sekmesini tıklayın.

  3. Destek Uygulaması Ana Sayfası'nı etkinleştirin.

  4. Destek Uygulaması Ana Sayfası onay kutusunu seçin.

  5. Uygulama Ana Sayfa URL'si alanına bir URL ekleyin. Bu değer genellikle Uygulama URL'si ile aynı URL'dir. Bu URL, APP_HOME etkinliği için çağrılır.

  6. Kaydet'i tıklayın.

Apps Komut Dosyası

  1. Google Cloud Console'da Menü > Diğer ürünler > Google Workspace > Ürün Kitaplığı > Google Chat API'ye gidin.

    Google Chat API'ye gidin

  2. Manage'ı (Yönet) ve ardından Configuration (Yapılandırma) sekmesini tıklayın.

  3. Destek Uygulaması Ana Sayfası onay kutusunu seçin.

  4. Kaydet'i tıklayın.

Chat uygulamanızı yapılandırın

Chat uygulamanızı, uygulama ana sayfası için yeni bir kart mesajı gönderecek şekilde yapılandırın.

Python

Kullanıcı bir Chat uygulamasından doğrudan mesaj açtığında Chat uygulamanıza bir APP_HOME etkinliği gönderilir. Bir Chat uygulaması bu etkinliği aldığında pushCard gezinmeyle birlikte, RenderActions JSON örneği döndürülür.

@app.route('/', methods=['POST'])
def on_event():
  event = request.get_json()
  chat = event.get('chat')
  if chat is not None:
    return handle_chat_event(event)

def handle_chat_event(event):
  if event['chat'].get('type') == 'APP_HOME':
    return get_app_home_card()

def get_app_home_card():
  return {
    "action": {
      "navigations": [
        {
          "pushCard": {
            "sections": [
              {
                "widgets": [
                  {
                    "buttonList": {
                      "buttons": [
                        {
                          "text": "Open documentation",
                          "onClick": {
                            "openLink": {
                              "url": "https://developers.google.com/chat"
                            }
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  }

Apps Komut Dosyası

Bu örnekte, kart JSON hatası döndürerek bir kart mesajı gönderilmektedir. Apps Komut Dosyası kart hizmetini de kullanabilirsiniz.

pushCard gezinme ile RenderActions JSON örneğini döndürmek için onAppHome işlevi uygulayın:

// "onAppHome" is the pre-defined name of the callback that the Chat servers
// execute.
function onAppHome() {
  return {
    action: {
      navigations: [
        {
          pushCard: getCard()
        }
      ]
    }
  };
}

function getCard() {
  return {
    sections: [
      {
        widgets: [
          {
            buttonList: {
              buttons: [
                {
                  text: "Open documentation",
                  onClick: {
                    openLink: {
                      url: "https://developers.google.com/chat"
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  };
}

Uygulama ana kartı mesajını güncelleme

Uygulama ana sayfa kartı mesajı, kullanıcı bir kart mesajıyla bilgi gönderdiğinde veya iletişim kutusunu kapattığında güncellenebilir. Örneğin, ilk uygulama ana kartı mesajı, kullanıcıdan bilgi içeren bir form doldurmasını isteyen karşılama mesajıdır. Kullanıcı formu doldurduktan sonra, güncellenmiş bir uygulama ana sayfa kartı mesajı gönderilir. Güncelleme, updateCard gezinmesi içeren bir RenderActions örneğiyle döndürülmelidir.

Python

HTTP uygulamaları için, uygulama ana kartı mesajının güncellenmesi Kullanıcılar tarafından girilen bilgileri işleme işlemine benzer, ancak RenderActions değerini döndürmeniz gerekir. invokedFunction, Card widget'ıyla ilişkili çağrılan işlevin adını temsil eder. Daha fazla bilgi için CommonEventObject adresini inceleyin. Aşağıdaki örnekte submitForm, kullanıcının form verilerini gönderdiğini göstermektedir:

@app.route('/', methods=['POST'])
def on_event():
  event = request.get_json()
  chat = event.get('chat')
  if chat is not None:
    return handle_chat_event(event)

def handle_chat_event(event):
  if event['chat'].get('type') == 'SUBMIT_FORM':
    event_object = event.get('commonEventObject')
    if event_object is not None:
      // Forms
      if 'submitForm' == event_object.get('invokedFunction'):
        return {
          'render_actions': {
            'action': {
              'navigations': [{
                'updateCard': get_update_card()
              }]
            }
          }
        }

def get_update_card():
  return {
      "action": {
          "navigations": [{
              "pushCard": {
                  "sections": [{
                      "widgets": [{
                          "buttonList": {
                              "buttons": [{
                                  "text": "Open documentation",
                                  "onClick": {
                                      "openLink": {
                                          "url": "https://developers.google.com/chat"
                                      }
                                  },
                              }]
                          }
                      }]
                  }]
              }
          }]
      }
  }

Apps Komut Dosyası

Bu örnekte, kart JSON hatası döndürerek bir kart mesajı gönderilmektedir. Apps Komut Dosyası kart hizmetini de kullanabilirsiniz.

// Called from elsewhere (i.e. on button press).
function updateAppHomeCard(event) {
  return {
    render_actions: {
      action: {
        navigations: [
          {
            updateCard: getCard()
          }
        ]
      }
    }
  }
}

function getCard() {
  return {
    sections: [
      {
        widgets: [
          {
            buttonList: {
              buttons: [
                {
                  text: "Open documentation",
                  onClick: {
                    openLink: {
                      url: "https://developers.google.com/chat"
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  };
}

Sınırlamalar

navigation genellikle Chat uygulamalarında kullanılamaz. Grup kartlarını iade edemezsiniz. Chat uygulamalarında yalnızca pushCard (ilk yanıt için) ve updateCard (güncellemeler için) kullanılabilir.