수신 웹훅을 사용하면 Chat 앱이 아닌 애플리케이션에서 Google Chat으로 비동기 메시지를 보낼 수 있습니다. 예를 들어 서버가 다운될 때 Google Chat에서 대기 중인 직원에게 알리도록 모니터링 애플리케이션을 구성할 수 있습니다.
Chat 앱을 사용하여 Chat 스페이스에서 메시지를 비동기식으로 전송, 업데이트 또는 삭제하려면 메시지 생성, 읽기, 업데이트, 삭제를 참고하세요.
기본 요건
이 가이드의 예를 실행하려면 다음이 필요합니다.
Python
- Python 3.10.7 이상
- 인터넷 및 웹브라우저 액세스
- Google Chat에 액세스할 수 있는 Google Workspace 계정
- 기존 Google Chat 스페이스
httplib2
라이브러리 필요한 경우 다음 명령줄 인터페이스 (CLI) 명령어를 실행하여 pip를 사용하여 라이브러리를 설치합니다.pip install httplib2
Node.js
- Node.js 및 npm 설치
- 인터넷 및 웹브라우저 액세스
- Google Chat에 액세스할 수 있는 Google Workspace 계정
- 기존 Google Chat 스페이스
Apps Script
- 인터넷 및 웹브라우저 액세스
- Google Chat에 액세스할 수 있는 Google Workspace 계정
- 기존 Google Chat 스페이스
자바
- 자바 11 이상
- Apache Maven
- 인터넷 및 웹브라우저 액세스
- Google Chat에 액세스할 수 있는 Google Workspace 계정
- 기존 Google Chat 스페이스
웹훅 만들기
웹훅을 만들려면 메시지를 수신할 Google Chat 스페이스에 웹훅을 등록한 다음 메시지를 전송하는 스크립트를 작성합니다.
1단계: 수신 웹훅 등록하기
- 웹브라우저에서 Google Chat을 엽니다.
- 웹훅을 추가하려는 스페이스로 이동합니다.
- 상단의 스페이스 제목 옆에 있는
웹훅 관리를 클릭합니다.
아래쪽 화살표 > - 스페이스에 이미 다른 웹훅이 있는 경우 다른 웹훅 추가를 클릭합니다. 그 이외의 경우 이 단계를 건너뛰세요.
- 이름에 '빠른 시작 웹훅'을 입력합니다.
- 아바타 URL에
https://developers.google.com/chat/images/chat-product-icon.png
를 입력합니다. - 저장을 클릭합니다.
- 복사를 클릭하여 전체 웹훅 URL을 복사합니다.
- 상자 외부를 클릭하여 수신 웹훅 대화상자를 닫습니다.
2단계: 웹훅 스크립트 작성
예시 웹훅 스크립트는 웹훅 URL에 create message 요청을 POST하여 웹훅이 등록된 공간에 메시지를 게시합니다. Google Chat API는 Message
의 인스턴스로 응답합니다.
웹훅 스크립트를 만드는 방법에 대한 구체적인 안내를 보려면 아래에서 언어를 선택하세요.
Python
작업 디렉터리에서 이름이
quickstart.py
인 파일을 만듭니다.quickstart.py
에서 다음 코드를 복사하여 붙여넣습니다.url
변수의 값을 1단계: 수신 웹훅 등록에서 복사한 웹훅 URL로 바꿉니다.
Node.js
작업 디렉터리에서 이름이
index.js
인 파일을 만듭니다.index.js
에서 다음 코드를 복사하여 붙여넣습니다.webhookURL
변수의 값을 1단계: 수신 웹훅 등록에서 복사한 웹훅 URL로 바꿉니다.
Apps Script
Apps Script 페이지로 이동합니다.
새 프로젝트를 클릭합니다.
다음 코드를 복사하여 붙여넣습니다.
url
변수의 값을 1단계: 수신 웹훅 등록에서 복사한 웹훅 URL로 바꿉니다.
자바
작업 디렉터리에서 이름이
pom.xml
인 파일을 만듭니다.pom.xml
에 다음을 복사하여 붙여넣습니다.작업 디렉터리에서 다음 디렉터리 구조
src/main/java
를 만듭니다.src/main/java
디렉터리에서App.java
이라는 파일을 만듭니다.App.java
에서 다음 코드를 복사하여 붙여넣습니다.URL
변수의 값을 1단계: 수신 웹훅 등록에서 복사한 웹훅 URL로 바꿉니다.
3단계: 웹훅 스크립트 실행
CLI의 작업 디렉터리에서 다음 명령어를 실행하여 샘플을 실행합니다.
Python
python3 quickstart.py
Node.js
node index.js
Apps Script
- 실행을 클릭합니다.
자바
mvn compile exec:java -Dexec.mainClass=App
샘플 코드를 실행하면 웹훅에서 코드를 등록한 공간에 메시지를 보냅니다.
메시지 대화목록 시작 또는 답장하기
메시지 URL을 시작하거나 threadKey
매개변수를 웹훅 URL에 추가하여 답장할 수 있습니다. 각 threadKey
는 이를 설정하는 앱마다 고유합니다. 서로 다른 두 Chat 앱 또는 웹훅에서 동일한 threadKey
을 설정하면 서로 다른 두 스레드가 시작됩니다.
메시지 대화목록 시작하기
웹훅을 사용하여 스레드의 첫 번째 메시지를 게시하려면 웹훅 URL에 threadKey
매개변수를 추가하세요. threadKey
를 임의의 문자열로 설정하되 무엇인지 기억합니다. 스레드에 응답을 게시하려면 다시 지정해야 합니다.
https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?threadKey=ARBITRARY_STRING
메시지 대화목록에 답장하기
기존 메시지 스레드에 메시지를 보내려면 threadKey
매개변수를 스레드를 시작하는 데 사용되는 값으로 설정된 웹훅 URL에 추가합니다. 예를 들어 다음 URL에 메시지를 보내면 threadKey
가 MY-THREAD
인 대화목록에 답장이 게시됩니다.
https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?threadKey=MY-THREAD
제한사항 및 고려사항
웹훅을 구성할 때 다음 한도와 고려사항에 유의하세요.
각 웹훅은 등록된 Chat 스페이스에서만 작동합니다.
Google Workspace Marketplace에 웹훅을 게시할 수 없습니다.
웹훅은 대화형이 아닙니다. Google Chat의 사용자 또는 이벤트에 응답하거나 메시지를 받을 수 없습니다.
도메인의 조직 단위 (OU)에만 Chat 앱을 사용 설정한 경우 수신 웹훅이 다음 오류를 반환합니다.
{ "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } }
수신 웹훅은 채팅 메시지에서 작동하지만 모든 사용자가 Chat 앱을 사용 설정한 경우에만 작동합니다.
웹훅 관리는 웹브라우저에서만 사용할 수 있으므로 Chat 웹 앱에서 웹훅을 설정해야 합니다. Chat 모바일 앱에서는 웹훅을 구성할 수 없습니다.