Google Chat 사용자로부터 정보 수집 및 처리

이 가이드에서는 Google Chat 앱에서 정보를 수집하고 처리하는 방법을 설명합니다. 사용자로부터 유용한 정보를 얻을 수 있습니다.

다양한 위젯을 보여주는 대화상자.
그림 1: 연락처 정보를 수집하기 위해 대화상자를 여는 샘플 Chat 앱

채팅 앱은 Google 계정에서 작업을 수행하기 위해 사용자에게 다음과 같은 방법을 사용합니다.

  • 설정을 구성합니다. 예를 들어 사용자가 알림 설정을 맞춤설정할 수 있습니다. 또는 하나 이상의 채팅 앱을 구성하고 추가 합니다.
  • 다른 Google Workspace 애플리케이션에서 정보를 만들거나 업데이트합니다. 대상 예를 들어 사용자가 Google Calendar 일정을 만들도록 허용합니다.
  • 사용자가 다른 앱 또는 웹 서비스의 리소스에 액세스하고 이를 업데이트하도록 허용합니다. 대상 예를 들어 채팅 앱을 사용하면 사용자가 지원 티켓 상태를 Chat 스페이스에서 바로 확인할 수 있습니다.

기본 요건

양방향 기능이 사용 설정된 Google Chat 앱 대화식 채팅 앱에서 대화식 채팅 앱을 사용하려면 다음 빠른 시작 중 하나를 완료하세요. 앱 아키텍처에 따라 다음을 수행합니다.

카드를 사용하여 양식 만들기

정보를 수집하기 위해 채팅 앱은 양식과 입력을 설계합니다. 카드로 만들 수 있습니다. 사용자에게 카드를 표시하기 위해 Chat 앱은 다음 Chat 인터페이스를 사용할 수 있습니다.

  • 메시지 광고가 게재됩니다.
  • 홈페이지: Chat 앱의 채팅 메시지에서 탭에 표시되는 카드입니다.
  • 대화상자: 메시지 및 홈페이지에서 새 창으로 열리는 카드입니다.

채팅 앱은 다음 위젯을 사용하여 카드를 빌드할 수 있습니다.

  • 사용자에게 정보를 요청하는 입력 위젯을 작성합니다. 원하는 경우 유효성 검사를 입력 위젯을 형성하고 사용자가 있습니다. 채팅 앱은 다음과 같은 양식 입력 위젯을 사용할 수 있습니다.

    • 자유 형식 또는 추천 텍스트용 텍스트 입력(textInput)
    • 선택 입력(selectionInput)은 체크박스, 라디오 버튼, 드롭다운 메뉴와 같이 선택 가능한 UI 요소입니다. 또한 선택 입력 위젯은 정적 또는 동적 데이터 소스에서 항목을 채웁니다. 예를 들어 사용자는 참여 중인 Chat 스페이스 목록에서 선택하세요.
    • 날짜 및 시간 항목의 날짜 시간 선택기(dateTimePicker)
  • 사용자가 카드에 입력한 값을 제출할 수 있는 버튼 위젯입니다. 사용자가 버튼을 클릭하면 채팅 앱에서 수신하는 정보를 처리합니다.

다음은 세 가지 유형의 날짜 및 시간 입력으로 구성된 카드를 보여줍니다.

정보를 수집하는 데 사용할 수 있는 대화형 위젯의 더 많은 예는 대화형 카드 또는 대화상자 디자인을 참고하세요.

대화형 위젯에서 데이터 수신

<ph type="x-smartling-placeholder">

사용자가 버튼을 클릭할 때마다 채팅 앱에서 CARD_CLICKED 상호작용 이벤트 상호작용 정보를 포함합니다. CARD_CLICKED 상호작용 이벤트의 페이로드에는 사용자가 입력한 값이 포함된 common.formInputs 객체가 포함됩니다.

객체에서 값을 가져올 수 있으며 common.formInputs.WIDGET_NAME, 각 항목의 의미는 다음과 같습니다. WIDGET_NAME는 위젯에 지정한 name 필드입니다. 값은 위젯의 특정 데이터 유형(Inputs 객체로 표시됨)으로 반환됩니다. 다음 예에서는 카드가 텍스트 입력란, 날짜 시간 선택 도구, 선택 입력 위젯을 사용하여 연락처 정보를 수집합니다.

{
  "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
      }
    ]
  }
}

상호작용 이벤트 처리

사용자가 카드나 대화상자에 데이터를 입력하면 채팅 앱이 채팅 앱을 수신함 사용자가 입력한 값이 포함된 CARD_CLICKED 상호작용 이벤트입니다.

다음은 CARD_CLICKED 상호작용 이벤트의 일부를 보여줍니다. 사용자가 각 위젯에 입력한 값

HTTP

{
  "type": "CARD_CLICKED",
  "common": { "formInputs": {
    "contactName": { "stringInputs": {
      "value": ["Kai 0"]
    }},
    "contactBirthdate": { "dateInput": {
      "msSinceEpoch": 1000425600000
    }},
    "contactType": { "stringInputs": {
      "value": ["Personal"]
    }}
  }}
}

Apps Script

{
  "type": "CARD_CLICKED",
  "common": { "formInputs": {
    "contactName": { "": { "stringInputs": {
      "value": ["Kai 0"]
    }}},
    "contactBirthdate": { "": { "dateInput": {
      "msSinceEpoch": 1000425600000
    }}},
      "contactType": { "": { "stringInputs": {
      "value": ["Personal"]
    }}}
  }}
}

채팅 앱에서는 데이터를 수신하기 위해 상호작용 이벤트를 사용하여 사용자가 위젯에 입력하는 값을 가져올 수 있습니다. 다음 표는 지정된 양식 입력 위젯의 값을 가져오는 방법을 보여줍니다. 각 위젯의 경우 위젯이 허용하는 데이터 유형, 값이 상호작용 이벤트에 저장되는 위치, 예시 값이 표에 표시됩니다.

양식 입력 위젯 입력 데이터 유형 상호작용 이벤트의 입력 값 예시 값
textInput stringInputs events.common.formInputs.contactName.stringInputs.value[0] Kai O
selectionInput stringInputs 첫 번째 또는 유일한 값을 가져오려면 events.common.formInputs.contactType.stringInputs.value[0]를 사용합니다. Personal
날짜만 허용하는 dateTimePicker입니다. dateInput events.common.formInputs.contactBirthdate.dateInput.msSinceEpoch. 1000425600000

다른 카드로 데이터 전송하기

사용자가 카드의 정보를 제출한 후 추가 카드를 사용하여 다음 작업을 수행할 수 있습니다.

  • 구분된 섹션을 만들어 사용자가 긴 양식을 작성할 수 있도록 지원합니다.
  • 사용자가 초기 카드의 정보를 미리 보고 확인할 수 있도록 하여 답변을 검토할 수 있습니다.
  • 양식의 나머지 부분을 동적으로 채웁니다. 예를 들어 사용자가 예약을 하도록 유도하려는 경우 채팅 앱은 예약 이유를 요청하는 첫 번째 카드를 표시합니다. 이렇게 하면 각 시간대의 예약 가능 시간을 표시하는 다른 카드를 채울 수 있습니다 약속 유형

초기 카드에서 데이터 입력을 전송하려면 button를 빌드하면 됩니다. actionParameters 위젯 다음과 같이 위젯의 name 및 사용자가 입력한 값이 포함된 예를 들면 다음과 같습니다.

{
  "buttonList": {
    "buttons": [{
      "text": "Submit",
      "onClick": {
        "action": {
          "function": "openNextCard",
          "parameters": [{
            "key": "WIDGET_NAME",
            "value": "USER_INPUT_VALUE"
          }]
        }
      }
    }]
  }
}

여기서 WIDGET_NAME는 위젯의 name이며 USER_INPUT_VALUE는 사용자가 입력하는 내용입니다. 예를 들어 텍스트의 경우 입력으로 정의되고 위젯 이름은 contactName이며 예시 값은 Kai O입니다.

사용자가 버튼을 클릭하면 Chat 앱은 CARD_CLICKED 상호작용 이벤트를 수신합니다. 값을 검색하려면 event.common.parameters 객체를 사용하면 됩니다.

다음은 사용자 입력 데이터가 포함된 매개변수를 다음 카드를 여는 함수에 전달하는 방법의 예를 보여줍니다.

Node.js

// Respond to button clicks on cards or dialogs
if (event.type === "CARD_CLICKED") {

  // Open another card.
  if (event.common.invokedFunction === "openNextCard") {
    const parameters = event.common.parameters;
    openNextCard(event);
  }
}

Python

  # Respond to button clicks on cards or dialogs
  if request.get('type') == 'CARD_CLICKED':
    if invoked_function := request.get('common', dict()).get('invokedFunction'):
      if invoked_function == 'open_next_card':
        parameters = request.get('common', dict()).get('parameters'),
        return open_next_card(parameters)

Apps Script

// Respond to button clicks on cards or dialogs
function onCardClick(event) {
  if (event.common.invokedFunction === "openNextCard") {
    const parameters = event.common.parameters;
    return openNextCard(parameters);
  }
}

양식 제출에 응답하기

카드 메시지 또는 대화상자에서 데이터를 수신한 후 Chat 앱은 수신 확인 또는 오류 반환으로 응답합니다.

다음 예에서는 채팅 앱이 확인 메시지가 표시됩니다. 있습니다.

Apps Script

function submitCardForm(contactName, contactBirthdate, contactType) {
    return {
      "text": "You entered the following contact information:\n\n" +
      "*Name:* " + contactName + "\n" +
      "*Birthdate:* " + contactBirthdate + "\n" +
      "*Type:* " + contactType
      }
}

대화상자를 처리하고 닫으려면 ActionResponse 이 객체를 통해 확인 메시지 전송, 업데이트 가능 여부 또는 원본 메시지 또는 카드를 삭제하거나 대화상자를 닫을 수 있습니다. 단계는 대화상자 닫기를 참고하세요.

문제 해결

Google Chat 앱 또는 카드가 오류를 반환하면 Chat 인터페이스에 '문제가 발생했습니다'라는 메시지가 표시됩니다. 또는 '요청을 처리할 수 없습니다.' 채팅 UI가 오류 메시지가 표시되지 않지만 채팅 앱 또는 카드에서 예기치 않은 결과가 발생합니다. 예를 들어 카드 메시지가 나타납니다.

Chat UI에 오류 메시지가 표시되지 않을 수 있지만 Chat 앱의 오류 로깅이 사용 설정된 경우 오류를 수정하는 데 도움이 되는 설명 오류 메시지와 로그 데이터를 사용할 수 있습니다. 보는 데 도움이 필요한 경우 오류를 수정하는 방법에 대한 자세한 내용은 Google Chat 오류 문제 해결하기