Google Chat 앱과의 상호작용 수신 및 응답

이 페이지에서는 Google Chat 앱이 사용자 상호작용(Google Chat 앱 상호작용 이벤트라고도 함)을 수신하고 응답하는 방법을 설명합니다.

Google 채팅 앱 상호작용 이벤트는 @멘션, 채팅 앱 스페이스에 추가 등 사용자가 채팅 앱을 호출하거나 상호작용하기 위해 실행하는 모든 작업을 나타냅니다. 사용자가 채팅 앱과 상호작용할 때 Google Chat은 채팅 앱에 상호작용 이벤트를 전송합니다. 채팅 앱은 이벤트를 사용하여 상호작용을 처리하고 응답을 만들 수 있습니다.

예를 들어 채팅 앱은 상호작용 이벤트를 사용하여 다음 중 하나를 실행합니다.

상호작용 이벤트의 예 채팅 앱의 일반적인 응답
사용자가 @멘션하거나 슬래시 명령어를 사용하여 채팅 앱을 호출합니다. 채팅 앱은 메시지에 나오는 내용을 처리하여 메시지를 만듭니다. 예를 들어 채팅 앱이 /about 명령어에 응답하여 채팅 앱이 할 수 있는 작업을 설명하는 메시지를 보낸다고 가정해 보겠습니다.
사용자가 스페이스에 채팅 앱을 추가합니다. 채팅 앱에서 앱의 기능과 스페이스의 사용자가 앱과 상호작용할 수 있는 방법을 설명하는 온보딩 메시지를 보냅니다.
사용자가 스페이스에서 채팅 앱을 삭제합니다. 채팅 앱은 스페이스용으로 구성된 수신 알림 (예: 웹훅 삭제)을 삭제하고 내부 저장소를 모두 삭제합니다.
사용자가 채팅 앱에서 보낸 카드 또는 대화상자의 버튼을 클릭합니다. 채팅 앱은 사용자가 제출한 모든 데이터를 처리하고 저장하거나 다른 카드 또는 대화상자를 반환합니다.

Google Chat은 사용자 상호작용 유형별로 다른 유형의 상호작용 이벤트를 전송합니다. 예를 들어 Google Chat은 사용자가 메시지에서 채팅 앱을 호출하는 모든 상호작용에 이벤트 유형 MESSAGE를 사용합니다. 자세한 내용은 Google Chat 앱 상호작용 이벤트의 유형을 참고하세요.

이 페이지에서는 다음 작업을 수행하는 방법을 설명합니다.

  • 이벤트를 수신하도록 채팅 앱을 구성합니다.
  • 인프라에서 상호작용 이벤트를 처리합니다.
  • 해당하는 경우 상호작용 이벤트에 응답합니다.

채팅 앱 상호작용 이벤트 수신

이 섹션에서는 채팅 앱의 상호작용 이벤트를 수신하고 처리하는 방법을 설명합니다.

상호작용 이벤트를 수신하도록 채팅 앱 구성

일부 Chat 앱은 대화형이 아닙니다. 예를 들어 수신 웹훅은 발신 메시지만 보낼 수 있고 사용자에게 응답할 수는 없습니다. 대화형 Chat 앱을 빌드하는 경우 채팅 앱이 상호작용 이벤트를 수신하고 처리하고 응답할 수 있도록 허용하는 엔드포인트를 선택해야 합니다. 채팅 앱 설계에 관한 자세한 내용은 채팅 앱 구현 아키텍처를 참고하세요.

대화형 채팅 앱을 빌드한 경우 Google Chat에서 상호작용 이벤트를 전송할 수 있도록 Google Chat API를 구성해야 합니다.

  1. Google Cloud 콘솔에서 Google Chat API 페이지를 엽니다.

    Google Chat API 페이지로 이동

  2. Configuration 탭을 클릭합니다.
  3. 양방향 기능 섹션에서 양방향 기능 사용 설정 전환 버튼을 클릭하여 켜기 위치로 전환합니다.
  4. 기능에서 다음 체크박스 중 하나 또는 둘 다를 선택합니다.
    1. 1:1 메시지 수신: 사용자가 채팅 메시지 (DM) 스페이스에서 채팅 앱과 상호작용할 수 있습니다. 채팅 앱은 사용자가 DM 스페이스에서 메시지를 보낼 때마다 상호작용 이벤트를 수신합니다.
    2. 스페이스 및 그룹 대화 참여: 사용자가 두 명 이상의 스페이스에 채팅 앱을 추가하고 삭제할 수 있습니다. 채팅 앱은 스페이스에 추가 또는 삭제될 때마다 및 사용자가 스페이스에서 @멘션하거나 슬래시 명령어를 사용할 때마다 상호작용 이벤트를 수신합니다.
  5. 연결 설정에서 Google Chat이 Chat 앱 상호작용 이벤트를 전송하는 위치를 지정합니다.
  6. 선택사항: 슬래시 명령어에서 슬래시 명령어를 하나 이상 추가하고 구성합니다. 자세한 내용은 슬래시 명령어 설정을 참고하세요.
  7. 선택사항: 링크 미리보기에서 채팅 앱에서 미리 볼 수 있는 URL 패턴을 하나 이상 추가하고 구성합니다. 자세한 내용은 미리보기 링크를 참고하세요.
  8. 저장을 클릭합니다.

이제 채팅 앱이 Google Chat의 상호작용 이벤트를 수신하도록 구성되었습니다.

서비스에 대한 HTTP 호출 재시도 처리

서비스에 대한 HTTPS 요청이 실패하면(예: 시간 초과, 일시적인 네트워크 장애, 2xx가 아닌 HTTPS 상태 코드) Google Chat에서 몇 분 내에 전송을 다시 시도할 수도 있지만 이는 보장되지 않습니다. 따라서 채팅 앱은 특정 상황에서 동일한 메시지를 몇 번 받을 수 있습니다. 요청이 성공적으로 완료되었지만 잘못된 메시지 페이로드가 반환되면 Google Chat은 요청을 재시도하지 않습니다.

상호작용 이벤트 처리 또는 응답

이 섹션에서는 Google Chat 앱이 상호작용 이벤트를 처리하고 이에 응답하는 방법을 설명합니다.

채팅 앱이 Google Chat에서 상호작용 이벤트를 수신한 후 다양한 방법으로 응답할 수 있습니다. 대부분의 경우 대화형 Chat 앱은 사용자에게 메시지로 응답합니다. Google Chat 앱은 데이터 소스에서 일부 정보를 조회하거나 상호작용 이벤트 정보를 기록하거나 그 외 모든 작업을 수행할 수 있습니다. 이 처리 동작은 본질적으로 Google Chat 앱을 정의하는 것입니다.

각 상호작용 이벤트의 경우 채팅 앱은 이벤트를 나타내는 JSON 페이로드인 요청 본문을 수신합니다. 이 정보를 사용하여 응답을 처리할 수 있습니다. 이벤트 페이로드의 예시는 Chat 앱 상호작용 이벤트의 유형을 참조하세요.

다음 다이어그램은 Google Chat 앱이 일반적으로 다양한 유형의 상호작용 이벤트를 처리하거나 이에 응답하는 방법을 보여줍니다.

Google Chat 앱이 상호작용 이벤트를 처리하는 방식의 아키텍처

실시간 대답

상호작용 이벤트를 사용하면 채팅 앱이 실시간으로 또는 동기식으로 응답할 수 있습니다. 동기 응답에는 인증이 필요하지 않습니다.

상호작용 이벤트에 대한 동기식 응답을 만들려면 다음 가이드를 참고하세요.

동기식으로 응답하려면 채팅 앱이 30초 이내에 응답해야 하며 상호작용이 발생한 공간에 응답을 게시해야 합니다. 그러지 않으면 채팅 앱이 비동기식으로 응답할 수 있습니다.

비동기식으로 응답

채팅 앱이 30초 후에 상호작용 이벤트에 응답하거나 상호작용 이벤트가 생성된 스페이스 외부에서 작업을 실행해야 하는 경우도 있습니다. 예를 들어 채팅 앱은 장기 실행 작업을 완료한 후 사용자에게 응답해야 할 수 있습니다. 이 경우 채팅 앱은 Google Chat API를 호출하여 비동기식으로 응답할 수 있습니다.

Chat API를 사용하여 메시지를 만들려면 메시지 만들기를 참고하세요. 추가 Chat API 메서드 사용에 대한 가이드는 Chat API 개요를 참조하세요.