Google Chat'te kişi toplama ve yönetme

Bu eğitimde, Google Chat kullanıcıları, özel ve iş kişilerini yönetir. Chat uygulaması, bilgi toplamak için kullanıcılardan kart mesajlarındaki ve iletişim kutularındaki iletişim formunu doldurmalarını ister.

Chat uygulamasını çalışırken görün:

  • Eğik çizgi komutundaki iletişim formu.
    Şekil 1. Chat uygulaması, eğik çizgi komutu /about'ye bir kısa mesaj ve iletişim formunu açan bir düğmeyle yanıt verir.
  • İletişim formu gösteriliyor..
    Şekil 2. İlgili içeriği oluşturmak için kullanılan Chat uygulaması, kullanıcıların şu işlemleri yapabileceği bir iletişim kutusu açar: bir kişiyle ilgili giriş bilgilerini girin.
  • Onayla ve incele iletişim kutusu.
    Şekil 3. İlgili içeriği oluşturmak için kullanılan Chat uygulaması bir onay iletişim kutusu döndürüyor inceleyip onaylaması için kullanıcıların gönderin.
  • Yeni kişiyi onaylayan bir kısa mesaj.
    Şekil 4. Kullanıcı isteği gönderdikten sonra Chat uygulaması, muhatabınıza özel bir kısa mesaj gönderebilirsiniz.
  • Kart mesajından alınan iletişim formu..
    Şekil 5. İlgili içeriği oluşturmak için kullanılan Chat uygulaması, kullanıcılardan kişi eklemelerini de ister. bir kart aracılığıyla görüntüleyebilirsiniz.

Ön koşullar

Hedefler

Mimari

Chat uygulaması yerleşik olarak mevcut Google Apps Komut Dosyası'na etkileşim etkinliklerinin işlenmesi sohbet edebiliyorlar.

Burada, bir kullanıcının Merchant Center'daki Chat uygulaması:

  1. Kullanıcı Chat uygulamasında doğrudan mesaj açtığında veya Chat uygulamasını mevcut bir alana ekler.

  2. Chat uygulaması, kullanıcıdan bir iletişim formu oluşturmak ve bu formu card nesnesini tanımlayın. Chat uygulaması, iletişim formunu sunmak için kullanıcılara aşağıdaki şekillerde yanıt verir:

    • @bahsetmelere ve doğrudan mesajlara şu kartla yanıt verir: iletişim formunu içerdiğinden emin olun.
    • /addContact eğik çizgi komutuna şu başlığa sahip bir iletişim kutusu açarak yanıt verir: iletişim formunu doldurun.
    • /about eğik çizgi komutuna, kullanıcıların iletişim formu içeren bir iletişim kutusu açmak için tıklayabilecekleri Kişi ekle düğmesinin bulunduğu bir metin mesajıyla yanıt verir.
  3. İletişim formuyla birlikte sunulduğunda kullanıcı, iletişim bilgilerini girer. aşağıdaki alanlarda ve widget'larda:

    • Ad ve soyadı: textInput widget'ını kullanabilirsiniz.
    • Doğum tarihi: dateTimePicker widget'ını kullanabilirsiniz.
    • Kişi türü: selectionInput kullanıcıların tek bir dize seçip göndermesine olanak tanıyan radyo düğmelerinin widget'ı değer (Personal veya Work).
    • İncele ve gönder düğmesi: Kullanıcının girdiği değerleri göndermek için tıkladığı button widget'ı içeren bir buttonList dizisi.
  4. Google Chat uygulaması bir CARD_CLICKED etkileşim etkinliğini gerçekleştirir kullanıcı tarafından girilen değerleri işlemek ve onay kartına bakın.

  5. Kullanıcı onay kartını inceler ve Gönder düğmesini tıklar. iletişim bilgilerini son haline getirin.

  6. Google Chat uygulaması, emin olun.

Ortamı hazırlama

Bu bölümde, web sitesi için Google Cloud projesinin nasıl Chat uygulaması.

Google Cloud projesi oluşturma

Google Cloud Console

  1. Google Cloud konsolunda Menü'ye gidin > IAM ve Yönetici > Proje oluşturun'u tıklayın.

    Proje Oluştur'a gidin

  2. Proje Adı alanına projeniz için açıklayıcı bir ad girin.

    İsteğe bağlı: Proje kimliğini düzenlemek için Düzenle'yi tıklayın. Proje kimliği değiştirilemez Bu nedenle, ilk deneme süresi boyunca ihtiyaçlarınızı karşılayan bir kimlik seçin. belirler.

  3. Konum alanında, işletmenizin olası konumlarını görüntülemek için Göz at'ı tıklayın belirler. Ardından Seç'i tıklayın.
  4. Oluştur'u tıklayın. Google Cloud Console, Kontrol Paneli sayfasına gider ve projeniz oluşturulur birkaç dakika.

gcloud CLI

Aşağıdaki geliştirme ortamlarından birinde Google Cloud KSA (gcloud):

  • Cloud Shell: gcloud CLI'nin önceden ayarlandığı bir internet terminali kullanmak için Cloud Shell'i etkinleştirin.
    Cloud Shell'i etkinleştirme
  • Yerel Kabuk: Yerel bir geliştirme ortamı kullanmak için gcloud CLI'yi yükleyin ve başlatın.
    . Bir Cloud projesi oluşturmak için gcloud projects create komutunu kullanın:
    gcloud projects create PROJECT_ID
    Oluşturmak istediğiniz projenin kimliğini ayarlayarak PROJECT_ID değerini değiştirin.

Kimlik doğrulama ve yetkilendirme ayarlarını yapma

Google Chat uygulamaları için OAuth izin ekranını kullanıcılar, aşağıdakiler de dahil olmak üzere Google Workspace uygulamalarında uygulamanızı yetkilendirebilir: Google Chat

Bu eğiticide yalnızca için yer tutucu bilgileri de kullanabilirsiniz. Bu nedenle, izin ekranını seçin. Chat uygulamasını yayınlamadan önce gerçek bilgileri içeren yer tutucu bilgileri içerir.

  1. Google Cloud konsolunda şu adrese gidin: Menü > API'ler ve Hizmetler > OAuth izin ekranı'nı tıklayın.

    OAuth izin ekranına gidin

  2. Kullanıcı türü bölümünde Dahili'yi seçin ve ardından Oluştur'u tıklayın.

  3. Uygulama adı alanına Contact Manager yazın.

  4. Kullanıcı desteği e-postası bölümünde e-posta adresinizi veya Google grubu.

  5. Geliştirici iletişim bilgileri bölümünün altına e-posta adresinizi girin.

  6. Kaydet ve Devam Et'i tıklayın.

  7. Kapsamlar sayfasında Kaydet ve Devam Et'i tıklayın. (Chat uygulaması için OAuth kapsamı gerekmez.)

  8. Özeti inceleyin ve ardından Kontrol Paneline Dön'ü tıklayın.

Chat uygulamasını oluşturma ve dağıtma

Aşağıdaki bölümde bir Gerekli tüm uygulamaları içeren Apps Komut Dosyası projesi olduğundan emin olmak için hem mevcut hem de her dosyayı yapıştırın.

İsterseniz projenin tamamını GitHub'da görüntüleyebilirsiniz.

GitHub'da göster

Aşağıda, her bir dosyaya ilişkin genel bakış bulabilirsiniz:

main.gs

Kullanıcıların Chat uygulamasına mesaj göndermesi, Chat uygulaması mesajındaki düğmeleri tıklaması veya iletişim kutularını açıp kapatmasıyla ilgili etkileşim etkinlikleri de dahil olmak üzere tüm uygulama mantığını yönetir.

main.gs kodunu göster

apps-script/contact-form-app/main.gs
/**
 * Copyright 2024 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Responds to a MESSAGE interaction event in Google Chat.
 *
 * @param {Object} event the MESSAGE interaction event from Chat API.
 * @return {Object} message response that opens a dialog or sends private
 *                          message with text and card.
 */
function onMessage(event) {
  if (event.message.slashCommand) {
    switch (event.message.slashCommand.commandId) {
      case 1:
        // If the slash command is "/about", responds with a text message and button
        // that opens a dialog.
        return {
          text: "Manage your personal and business contacts 📇. To add a " +
                  "contact, use the slash command `/addContact`.",
          accessoryWidgets: [{ buttonList: { buttons: [{
            text: "Add Contact",
            onClick: { action: {
              function: "openDialog",
              interaction: "OPEN_DIALOG"
            }}
          }]}}]
        }
      case 2:
        // If the slash command is "/addContact", opens a dialog.
        return openDialog(event);
    }
  }

  // If user sends the Chat app a message without a slash command, the app responds
  // privately with a text and card to add a contact.
  return {
    privateMessageViewer: event.user,
    text: "To add a contact, try `/addContact` or complete the form below:",
    cardsV2: [{
      cardId: "addContactForm",
      card: {
        header: { title: "Add a contact" },
        sections:[{ widgets: CONTACT_FORM_WIDGETS.concat([{
          buttonList: { buttons: [{
            text: "Review and submit",
            onClick: { action: { function : "openNextCard" }}
          }]}
        }])}]
      }
    }]
  };
}

/**
 * Responds to CARD_CLICKED interaction events in Google Chat.
 *
 * @param {Object} event the CARD_CLICKED interaction event from Google Chat
 * @return {Object} message responses specific to the dialog handling.
 */
function onCardClick(event) {
  // Initial dialog form page
  if (event.common.invokedFunction === "openDialog") {
    return openDialog(event);
  // Second dialog form page
  } else if (event.common.invokedFunction === "openNextCard") {
    return openNextCard(
      event.user,
      fetchFormValue(event, "contactName"),
      fetchFormValue(event, "contactBirthdate"),
      fetchFormValue(event, "contactType"),
      event.isDialogEvent
    );
  // Dialog form submission
  } else if (event.common.invokedFunction === "submitForm") {
    const userInputs = event.common.parameters;
    return submitForm(event.user, userInputs, event.dialogEventType);
  }
}

/**
 * Extracts form input value for a given widget.
 *
 * @param {Object} event the CARD_CLICKED interaction event from Google Chat.
 * @param {String} widgetName a unique ID for the widget, specified in the widget's name field.
 * @returns the value inputted by the user, null if no value can be found.
 */
function fetchFormValue(event, widgetName) {
  const formItem = event.common.formInputs[widgetName][""];
  // For widgets that receive StringInputs data, the value input by the user.
  if (formItem.hasOwnProperty("stringInputs")) {
    const stringInput = event.common.formInputs[widgetName][""].stringInputs.value[0];
    if (stringInput != null) {
      return stringInput;
    }
  // For widgets that receive dateInput data, the value input by the user.
  } else if (formItem.hasOwnProperty("dateInput")) {
    const dateInput = event.common.formInputs[widgetName][""].dateInput.msSinceEpoch;
     if (dateInput != null) {
       return dateInput;
     }
  }

  return null;
}

/**
 * Opens a dialog that prompts users to add details about a contact.
 *
 * @return {Object} a message with an action response to open a dialog.
 */
function openDialog() {
  return { actionResponse: {
    type: "DIALOG",
    dialogAction: { dialog: { body: { sections: [{
      header: "Add new contact",
      widgets: CONTACT_FORM_WIDGETS.concat([{
        buttonList: { buttons: [{
          text: "Review and submit",
          onClick: { action: { function: "openNextCard" }}
        }]}
      }])
    }]}}}
  }};
}

/**
 * Returns a dialog or card message that displays a confirmation of contact
 * details before users submit.
 *
 * @param {String} user the user who submitted the information.
 * @param {String} contactName the contact name from the previous dialog or card.
 * @param {String} contactBirthdate the birthdate from the previous dialog or card.
 * @param {String} contactType the contact type from the previous dialog or card.
 * @param {boolean} fromDialog whether the information was submitted from a dialog.
 *
 * @return {Object} returns a dialog or private card message.
 */
function openNextCard(user, contactName, contactBirthdate, contactType, fromDialog) {
  const name = contactName ?? "<i>Not provided</i>";
  const birthdate = contactBirthdate ?? "<i>Not provided</i>";
  const type = contactType ?? "<i>Not provided</i>";
  const cardConfirmation = {
    header: "Your contact",
    widgets: [{
      textParagraph: { text: "Confirm contact information and submit:" }}, {
      textParagraph: { text: "<b>Name:</b> " + name }}, {
      textParagraph: {
        text: "<b>Birthday:</b> " + convertMillisToDateString(birthdate)
      }}, {
      textParagraph: { text: "<b>Type:</b> " + type }}, {
      buttonList: { buttons: [{
        text: "Submit",
        onClick: { action: {
          function: "submitForm",
          parameters: [{
            key: "contactName", value: name }, {
            key: "contactBirthdate", value: birthdate }, {
            key: "contactType", value: type
          }]
        }}
      }]}
    }]
  };

  // Returns a dialog with contact information that the user input.
  if (fromDialog) {
    return { action_response: {
      type: "DIALOG",
      dialogAction: { dialog: { body: { sections: [ cardConfirmation ]}}}
    }};
  }

  // Updates existing card message with contact information that the user input.
  return {
    actionResponse: { type: "UPDATE_MESSAGE" },
    privateMessageViewer: user,
    cardsV2: [{
      card: { sections: [cardConfirmation]}
    }]
  }
}

/**
  * Submits information from a dialog or card message.
  *
  * @param {Object} user the person who submitted the information.
  * @param {Object} userInputs the form input values from event parameters.
  * @param {boolean} dialogEventType "SUBMIT_DIALOG" if from a dialog.
  * @return {Object} a message response that opens a dialog or posts a private
  *                  message.
  */
function submitForm(user, userInputs, dialogEventType) {
  const contactName = userInputs["contactName"];
  // Checks to make sure the user entered a contact name.
  // If no name value detected, returns an error message.
  if (!contactName) {
    const errorMessage = "Don't forget to name your new contact!";
    if (dialogEventType === "SUBMIT_DIALOG") {
      return { actionResponse: {
        type: "DIALOG",
        dialogAction: { actionStatus: {
          statusCode: "INVALID_ARGUMENT",
          userFacingMessage: errorMessage
        }}
      }};
    } else {
      return {
        privateMessageViewer: user,
        text: errorMessage
      };
    }
  }

  // The Chat app indicates that it received form data from the dialog or card.
  // Sends private text message that confirms submission.
  const confirmationMessage = " " + contactName + " has been added to your contacts.";
  if (dialogEventType === "SUBMIT_DIALOG") {
    return {
      actionResponse: {
        type: "NEW_MESSAGE",
        dialogAction: { actionStatus: {
          statusCode: "OK",
          userFacingMessage: "Success " + JSON.stringify(contactName)
        }}
      },
      privateMessageViewer: user,
      text: confirmationMessage
    }
  } else {
    return {
      actionResponse: { type: "NEW_MESSAGE" },
      privateMessageViewer: user,
      text: confirmationMessage
    };
  }
}

/**
 * Converts date in milliseconds since epoch to user-friendly string.
 *
 * @param {Object} millis the milliseconds since epoch time.
 * @return {string} Display-friend date (English US).
 */
function convertMillisToDateString(millis) {
  const date = new Date(millis);
  const options = { year: 'numeric', month: 'long', day: 'numeric' };
  return date.toLocaleDateString('en-US', options);
}
contactForm.gs

Kullanıcılardan form verileri alan widget'ları içerir. Bu form giriş widget'ları, mesajlarda ve iletişim kutularında görünen kartlarda gösterilir.

contactForm.gs kodunu göster

apps-script/contact-form-app/contactForm.gs
/**
 * Copyright 2024 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * The section of the contact card that contains the form input widgets. Used in a dialog and card message.
 * To add and preview widgets, use the Card Builder: https://addons.gsuite.google.com/uikit/builder
 */
const CONTACT_FORM_WIDGETS = [
  {
    "textInput": {
      "name": "contactName",
      "label": "First and last name",
      "type": "SINGLE_LINE"
    }
  },
  {
    "dateTimePicker": {
      "name": "contactBirthdate",
      "label": "Birthdate",
      "type": "DATE_ONLY"
    }
  },
  {
    "selectionInput": {
      "name": "contactType",
      "label": "Contact type",
      "type": "RADIO_BUTTON",
      "items": [
        {
          "text": "Work",
          "value": "Work",
          "selected": false
        },
        {
          "text": "Personal",
          "value": "Personal",
          "selected": false
        }
      ]
    }
  }
];
appsscript.json

Chat uygulaması için Apps Komut Dosyası projesini tanımlayan ve yapılandıran Apps Komut Dosyası manifesti.

appsscript.json kodunu göster

apps-script/contact-form-app/appsscript.json
{
  "timeZone": "America/Los_Angeles",
  "dependencies": {},
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "chat": {}
}

Cloud proje numaranızı ve kimliğinizi bulma

  1. Google Cloud Console'da Cloud projenize gidin.

    Google Cloud konsoluna git

  2. Ayarlar ve Yardımcı Programlar > Proje ayarları'nı tıklayın.

  3. Proje numarası ve Proje kimliği alanlarındaki değerleri not edin. Siz kullanabilirsiniz.

Apps Komut Dosyası projesini oluşturma

Apps Komut Dosyası projesi oluşturmak ve bu projeyi Cloud projesi:

  1. Google Chat'te kişileri yönetme Apps Komut Dosyası projesini açmak için aşağıdaki düğmeyi tıklayın.
    Projeyi açma
  2. Genel Bakış'ı tıklayın.
  3. Genel bakış sayfasında Kopya oluşturma simgesi Kopya oluştur'u tıklayın.
  4. Apps Komut Dosyası projesinin kopyanıza bir ad verin:

    1. Google Chat'te kişileri yönetmeyle ilgili makalenin kopyası'nı tıklayın.

    2. Proje başlığı'na Contact Manager - Google Chat app yazın.

    3. Yeniden adlandır'ı tıklayın.

Apps Komut Dosyası projesinin Cloud projesini ayarlayın

  1. Apps Komut Dosyası projenizde Proje ayarları simgesi Proje Ayarları'nı tıklayın.
  2. Google Cloud Platform (GCP) Project bölümünde Projeyi değiştir seçeneğini tıklayın.
  3. GCP proje numarası alanına Cloud projenizin proje numarasını yapıştırın.
  4. Proje ayarla'yı tıklayın. Cloud projesi ve Apps Komut Dosyası şimdi de bağlantılı.

Apps Komut Dosyası dağıtımı oluşturma

Tüm kod eklendiğinden Apps Komut Dosyası projesini dağıtın. Dağıtım kimliğini, Google Cloud'daki Chat uygulaması.

  1. Apps Komut Dosyası'nda Chat uygulamasının belirler.

    Apps Komut Dosyası'na gidin

  2. Dağıt'ı tıklayın > Yeni dağıtım.

  3. Eklenti henüz seçilmemişse Türü seç'in yanındaki dağıtım türlerini Proje ayarlarının simgesi tıklayın ve Eklenti'yi seçin.

  4. Açıklama alanına bu sürüm için bir açıklama girin (ör. Test of Contact Manager).

  5. Dağıt'ı tıklayın. Apps Komut Dosyası raporları başarılı dağıtım kimliği sağlar ve bir dağıtım kimliği sağlar.

  6. Dağıtım kimliğini kopyalamak için Kopyala'yı ve ardından Bitti'yi tıklayın.

Google Cloud Console'da Chat uygulamasını yapılandırma

Bu bölümde, Google Cloud Console'da Google Chat API'nin, Apps Script projenizden yeni oluşturduğunuz dağıtımın kimliği de dahil olmak üzere Chat uygulamanızla ilgili bilgilerle nasıl yapılandırılacağı gösterilmektedir.

  1. Google Cloud konsolunda Menü'yü tıklayın. &gt; Diğer ürünler &gt; Google Workspace &gt; Ürün Kitaplığı &gt; Google Chat API &gt; Yönet &gt; Yapılandırma.

    Chat API yapılandırmasına git

  2. Uygulama adı alanına Contact Manager yazın.

  3. Avatar URL'si alanına https://developers.google.com/chat/images/contact-icon.png yazın.

  4. Açıklama alanına Manage your personal and business contacts yazın.

  5. Etkileşimli özellikleri etkinleştir düğmesini tıklayarak açık konuma getirin.

  6. İşlevsellik bölümünde, Bire bir mesajlar al onay kutularını işaretleyin ve Alanlara ve grup görüşmelerine katılabilirsiniz.

  7. Bağlantı ayarları bölümünde Apps Komut Dosyası'nı seçin.

  8. Deployment ID (Dağıtım Kimliği) alanına Apps Komut Dosyası Dağıtım Kimliğini yapıştırın. önceki bölümde kopyaladığınız, Apps Komut Dosyası dağıtımı.

  9. Eğik çizgi komutları altında, eğik çizgi komutlarını /about ve /addContact:

    1. İlk eğik çizgi komutunu ayarlamak için Eğik çizgi komutu ekle'yi tıklayın.
    2. Ad alanına /about yazın.
    3. Komut Kimliği'ne 1 yazın.
    4. Açıklama alanına şunu yazın: Learn how to use this Chat app to manage your contacts.
    5. Bir iletişim kutusu açar'ı seçin.
    6. Bitti'yi tıklayın.
    7. Başka bir eğik çizgi komutu oluşturmak için Eğik çizgi komutu ekle'yi tıklayın.
    8. Ad alanına /addContact yazın.
    9. Komut Kimliği'ne 2 yazın.
    10. Açıklama alanına şunu yazın: Submit information about a contact.
    11. Bir iletişim kutusu açar'ı seçin.
    12. Bitti'yi tıklayın.
  10. Görünürlük altında, Bu Chat uygulamasını YOUR DOMAIN kuruluşundaki belirli kişi ve grupların kullanımına sunun onay kutusunu işaretleyip e-posta adresinizi girin.

  11. Günlükler bölümünde, Hataları günlüğe kaydetme'yi seçin.

  12. Kaydet'i tıklayın. Yapılandırma tarafından kaydedilen bir mesaj gösterilir.

Chat uygulaması, Chat'te yüklenip test edilmeye hazırdır.

Chat uygulamasını test etme

Chat uygulamanızı test etmek için Chat uygulamasıyla bir doğrudan mesaj alanı açın ve mesaj gönderin:

  1. Oluşturduğunuz Google Workspace hesabını kullanarak Google Chat'i açın ve kendinizi güvenilir test kullanıcısı olarak eklediğinizde sağlanan erişimdir.

    Google Chat'e gidin

  2. Yeni sohbet'i tıklayın.
  3. 1 veya daha fazla kişi ekle alanına eklemek istediğiniz kişinin adını Chat uygulaması.
  4. Sonuçlar arasından Chat uygulamanızı seçin. Doğrudan mesajı açılır.

  1. Chat uygulamasındaki yeni doğrudan mesajda /addContact yazıp Enter tuşuna basın.

  2. Açılan iletişim kutusuna iletişim bilgilerini girin:

    1. Ad ve soyadı metin alanına bir ad girin.
    2. Doğum tarihi tarihi seçicisinde bir tarih seçin.
    3. Kişi türü bölümünde İş veya Kişisel radyo düğmesini seçin.
  3. İncele ve gönder'i tıklayın.

  4. Onay iletişim kutusunda gönderdiğiniz bilgileri inceleyin ve Gönder'i tıklayın. Chat uygulaması, CONTACT NAME has been added to your contacts. yazan bir metin mesajıyla yanıt verir.

  5. İsterseniz iletişim formunu aşağıdaki yöntemlerle de test edip gönderebilirsiniz:

    • /about eğik çizgi komutunu kullanın. Chat uygulaması yanıtları İçinde şöyle bir kısa mesaj ve bir aksesuar widget düğmesi görünüyor: Add a contact İletişim formunu içeren iletişim kutusunu açmak için düğmeyi tıklayabilirsiniz.
    • Chat uygulamasına, eğik çizgi komutu (ör. Hello). Chat uygulaması, iletişim formunu içeren bir metin ve kartla yanıt verir.

Temizleme

Bu eğiticide kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız Cloud projesini silmenizi öneririz.

  1. Google Cloud Console'da Kaynakları yönetin sayfasına gidin. Menü > IAM ve Yönetici > Kaynakları Yönet'i tıklayın.

    Resource Manager'a git 'nı inceleyin.

  2. Proje listesinde, silmek istediğiniz projeyi seçin ve ardından Sil'i tıklayın.
  3. İletişim kutusuna proje kimliğini yazın ve silmek için Kapat'ı tıklayın gösterir.