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

Bu sayfada, Chat uygulamanız için nasıl uygulama ana kart mesajı oluşturup göndereceğiniz açıklanmaktadır. Uygulama ana sayfası, kullanıcı Chat uygulamasıyla doğrudan bir mesaj açtığında Chat uygulamasının kullanıcıya gönderdiği özelleştirilebilir bir kart mesajıdır. Örneğin, uygulama ana kartı mesajını, eğik çizgi komutlarını 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.


Kart Oluşturucu ile kartları tasarlayın ve önizleyin.

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 uygulama bu etkinliği aldığında push_card gezinmeyle birlikte, RenderActions JSON örneği döndürülür.

Aşağıdaki örnekte bir etkinlik gösterilmektedir:

@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 "Card v2" representing App Home.

Aşağıdaki örnekte, belgelere yönlendiren bir düğme bağlantısı içerecek şekilde yapılandırılmış bir kart gösterilmektedir:

{
  action: {
    navigations: [
      {
        push_card: {
          sections: [
            {
              widgets: [
                {
                  buttonList: {
                    buttons: [
                      {
                        text: "Open documentation",
                        onClick: {
                          openLink: {
                            url: "https://developers.google.com/chat"
                          }
                        }
                      }
                    ]
                  }
                }
              ]
            }
          ]
        }
      }
    ]
  }
}

Apps Komut Dosyası

push_card 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: [
        {
          push_card: 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, update_card 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 işlem bilgileri'ne benzer ancak RenderActions değerini döndürmeniz gerekir. invokedFunction, Card widget'ıyla ilişkilendirilmiş ç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': [{
                'update_card': get_update_card
              }]
            }
          }
        }

def get_update_card:
  // Return "Card v2" representing App Home.
  ...

Apps Komut Dosyası

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

function getCard() {
  // Return "Card v2" representing App Home.
  ...
}