Google Chat

통합 버전: 2.0

제품 권한

서비스 계정 만들기

  1. Google Cloud 콘솔에서 기존 Google Cloud 프로젝트를 선택하거나 새 프로젝트를 만듭니다. 선택한 Google Cloud 프로젝트는 Google Cloud의 조직에 속해야 합니다.
  2. 메뉴를 클릭하고 API 및 서비스 > 사용자 인증 정보 메뉴 항목을 선택합니다.
  3. 페이지 상단에서 + 사용자 인증 정보 만들기 > 서비스 계정을 클릭합니다.
  4. 콘솔에 표시할 서비스 계정 이름을 입력합니다.
  5. 선택사항: 서비스 계정에 대한 설명을 입력합니다.
  6. 만들기, 계속, 완료를 차례로 클릭하여 서비스 계정 만들기를 마칩니다.

서비스 계정 사용자 인증 정보 만들기

  1. 서비스 계정을 만든 후 Google Cloud 프로젝트에 사용할 수 있는 사용자 인증 정보 목록으로 리디렉션됩니다. 서비스 계정 섹션에서 새로 만든 서비스 계정을 클릭합니다. 이 이름은 service-account-name@project-name-XXXXXX.iam.gserviceaccount.com입니다.
  2. 키 추가 > 새 키 만들기를 클릭합니다.
  3. JSON을 선택한 상태로 만들기를 클릭합니다.

이렇게 하면 이 서비스 계정으로 API에 액세스하는 데 필요한 사용자 인증 정보 파일이 다운로드됩니다.

새 Apps Script 프로젝트 설정

  1. Google Apps Script로 이동합니다.
  2. 새 Apps Script 프로젝트를 만듭니다.
  3. 통합 기능을 실행하려면 새로 만든 프로젝트에 다음 코드를 추가합니다.

    var SCOPE = 'https://www.googleapis.com/auth/chat.bot';
    // The values below are copied from the JSON file downloaded upon
    // service account creation.
    // For SERVICE_ACCOUNT_PRIVATE_KEY, remember to include the BEGIN and END lines of the private key
    var SERVICE_ACCOUNT_PRIVATE_KEY = '...';
    var SERVICE_ACCOUNT_EMAIL = 'service-account@project-id.iam.gserviceaccount.com';
    
    // Posts a message into the given space ID via the API, using
    // service account authentication.
    function postMessage(spaceId, message) {
      var service = OAuth2.createService('chat')
          .setTokenUrl('https://accounts.google.com/o/oauth2/token')
          .setPrivateKey(SERVICE_ACCOUNT_PRIVATE_KEY)
          .setClientId(SERVICE_ACCOUNT_EMAIL)
          .setPropertyStore(PropertiesService.getUserProperties())
          .setScope(SCOPE);
      if (!service.hasAccess()) {
        Logger.log('Authentication error: %s', service.getLastError());
        return;
      }
      var url = 'https://chat.googleapis.com/v1/' + spaceId + '/messages';
      UrlFetchApp.fetch(url, {
        method: 'post',
        headers: { 'Authorization': 'Bearer ' + service.getAccessToken() },
        contentType: 'application/json',
        payload: JSON.stringify(message),
      });
    }
    
  4. Google Cloud 콘솔에서 다운로드한 서비스 계정 사용자 인증 정보 파일을 엽니다.

  5. private_key 값(-----BEGIN PRIVATE KEY-----로 시작하는 값)을 복사하여 Apps Script 프로젝트의 SERVICE_ACCOUNT_PRIVATE_KEY에 붙여넣습니다.

  6. 사용자 인증 정보 파일에서 client_email 값을 복사하여 Apps Script 프로젝트의 SERVICE_ACCOUNT_EMAIL에 붙여넣습니다.

  7. Apps Script 프로젝트를 만든 Google Cloud 프로젝트에 연결합니다.

  8. Google Cloud 콘솔로 돌아가 ☰ > IAM 및 관리자 > 설정 메뉴 항목을 선택합니다.

  9. 이 페이지에 정의된 프로젝트 번호를 복사합니다.

  10. Apps Script 프로젝트에서 프로젝트 설정 > Google Cloud 프로젝트 메뉴 항목을 선택하고 프로젝트 번호를 여기에 프로젝트 번호 입력 대화상자에 붙여넣습니다.

  11. 프로젝트 설정을 클릭합니다.

Google Chat API 사용 설정

  1. > API 및 서비스로 이동하여 라이브러리를 선택합니다.
  2. Google Chat API를 검색하고 유일한 결과를 클릭합니다.
  3. 사용 설정을 클릭합니다.

이렇게 하면 프로젝트에 API가 사용 설정됩니다.

봇 배포

  1. Apps Script UI에서 배포 > 새 배포로 이동합니다.
  2. 새 배포 유형에 대해 부가기능을 선택합니다.
  3. 배포 이름과 설명을 입력하고 저장을 클릭합니다.
  4. 저장이 완료되면 방금 만든 배포 옆에 있는 ID 가져오기를 클릭하고 배포 ID 값을 복사합니다.

Google Chat 봇 구성:

  1. Google Cloud 콘솔에서 ☰ > API 및 서비스 > 대시보드로 이동합니다.
  2. 사용 설정된 API 목록에서 Google Chat API를 선택합니다.
  3. 관리를 클릭하여 Google Chat API 페이지를 엽니다.
  4. 열린 페이지에서 구성 탭을 선택하고 봇 구성을 설정합니다.

    • 앱 이름 필드에 Google Security Operations Chat App을 입력합니다.
    • 아바타 URL 필드에 https://developers.google.com/chat/images/chat-product-icon.png를 입력합니다.
    • 설명 필드에 Google SecOps에서 Google Chat 스페이스로 메시지를 보내는 데 사용할 수 있는 Google SecOps Chat App을 입력합니다.
    • 기능 섹션에서 앱이 여러 사용자가 있는 스페이스에서 작동함을 선택합니다.
    • 연결 설정 섹션에서 Apps Script 프로젝트를 선택하고 봇 배포 절차에서 얻은 배포 ID를 붙여넣습니다.
    • 권한 섹션에서 내 도메인의 특정 사용자 및 그룹을 선택하고 봇과 상호작용할 수 있는 사용자를 지정합니다.
    • 저장을 클릭합니다. 앱 구성이 완료되었습니다.

Google Chat 앱은 스페이스를 만들 수 없으므로 (대화 시작) 메시지를 보내야 하는 스페이스에 Google SecOps Chat 앱을 추가해야 합니다.

통합이 구성되면 '스페이스 목록' 작업을 사용하여 Google SecOps 앱이 액세스할 수 있는 스페이스 (메시지를 보낼 수 있는 스페이스)를 가져올 수 있습니다.

'스페이스 목록' 작업에 사용 가능한 스페이스가 표시되지 않으면 앱이 어떤 스페이스에서도 메시지를 보낼 수 없음을 의미합니다. 위의 자세한 안내로 돌아가 각 단계를 주의 깊게 따랐는지 확인하세요.

Google SecOps에서 Google Chat 통합 구성

Google SecOps에서 통합을 구성하는 방법에 대한 자세한 안내는 통합 구성을 참고하세요.

통합 매개변수

다음 매개변수를 사용하여 통합을 구성합니다.

매개변수 표시 이름 유형 기본값 필수 항목 설명
API 루트 URL 문자열 https://chat.googleapis.com/ 통합이 Google Chat 서비스에 연결하는 데 사용하는 API 루트 URL입니다.
서비스 계정 비밀번호 해당 사항 없음 챗봇이 Google Chat 서비스와 함께 작동하는 데 사용하는 서비스 계정 JSON 파일 콘텐츠입니다.
SSL 확인 체크박스 선택 사용 설정하면 Google Chat 서비스에 대한 연결의 SSL 인증서가 유효한지 확인합니다.

작업

설명

Google Security Operations Marketplace 탭의 통합 구성 페이지에서 제공된 매개변수를 사용하여 Google Chat에 대한 연결을 테스트합니다.

실행

이 작업은 항목에서 실행되지 않거나 필수 입력 매개변수가 없습니다.

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션
is_success True/False is_success:False
케이스 월
결과 유형 값/설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

성공한 경우: '제공된 연결 매개변수를 사용하여 Google Chat 서비스에 연결되었습니다.'

작업이 실패하고 플레이북 실행을 중지합니다.

잘못된 사용자 인증 정보 또는 연결 손실과 같은 중대한 오류가 보고되는 경우: 'Google Chat 서비스에 연결할 수 없습니다. 오류: {0}".format(exception.stacktrace)"

일반

스페이스 나열

설명

현재 구성된 Google Chat 봇이 추가된 스페이스를 나열합니다.

매개변수

매개변수 표시 이름 유형 기본값 필수 항목 설명
필터 키 DDL

다음 중 하나를 선택하세요.

가능한 값은 다음과 같습니다.

  • 이름
  • 표시 이름
  • 유형
아니요 Google Chat 스페이스를 필터링하는 데 사용해야 하는 키를 지정합니다.
필터 로직 DDL

지정되지 않음

가능한 값은 다음과 같습니다.

  • 지정되지 않음
  • 같음
  • 포함
아니요 적용할 필터 로직을 지정합니다. 필터링 로직은 '필터 키' 매개변수에 제공된 값을 기반으로 작동합니다.
필터 값 문자열 해당 사항 없음 아니요

필터에 사용할 값을 지정합니다.

'같음'을 선택하면 작업에서 결과 중 정확한 일치 항목을 찾으려고 시도합니다.

'포함'이 선택되면 작업은 지정된 하위 문자열을 포함하는 결과를 찾으려고 시도합니다.

이 매개변수에 아무것도 제공되지 않으면 필터가 적용되지 않습니다. 필터링 로직은 '필터 키' 매개변수에 제공된 값을 기반으로 작동합니다.

반환할 최대 레코드 수 정수 50 아니요

반환할 레코드 수를 지정합니다.

아무것도 제공되지 않으면 작업에서 50개의 레코드를 반환합니다.

사용자 멤버십 포함 체크박스 선택 해제 아니요 사용 설정하면 사용자 멤버십 정보가 작업 케이스 월 테이블 및 JSON 결과에 추가됩니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션
is_success True/False is_success:False
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

데이터를 사용할 수 있는 경우 (is_success=true): 'Google Chat에서 제공된 기준에 따라 추가된 스페이스를 찾았습니다.'

데이터를 사용할 수 없는 경우 (is_success=false): 'Google Chat에서 제공된 기준에 맞는 스페이스를 찾을 수 없습니다.'

'필터 값' 매개변수에 값이 없는 경우 (is_success=true):

'매개변수 '필터 값'이 비어 있어 필터가 적용되지 않았습니다.'

작업이 실패하고 플레이북 실행을 중지합니다.

필터 키 매개변수가 '하나 선택'으로 설정되고 필터 논리 매개변수가 '같음' 또는 '포함'으로 설정된 경우:

'Error executing action "List Spaces". 이유: '필터 키' 매개변수에서 필드를 선택해야 합니다.'

반환할 최대 레코드 매개변수에 잘못된 값이 제공된 경우:

'Error executing action "List Spaces". 이유: '반환할 최대 레코드 수'에 잘못된 값이 제공되었습니다. 양수를 입력해야 합니다.'

잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 보고되는 경우:

'Error executing action "List Spaces". 이유: {0}'.format(error.Stacktrace)

일반
케이스 월 테이블

표 이름: 사용 가능한 스페이스 봇이 추가됨 표 열: {fields}

참고: '사용자 멤버십 포함' 체크박스를 선택하면 스페이스 회원의 표시 이름이 있는 열이 추가됩니다.

일반

메시지 보내기

설명

Google SecOps 애플리케이션이 추가된 Google Chat 스페이스에 메시지를 보냅니다.

매개변수

매개변수 표시 이름 유형 기본값 필수 항목 설명
스페이스 이름 문자열 해당 사항 없음

메시지를 보낼 스페이스 이름을 지정합니다.

스페이스 이름 예: AAAAdaTsel0

메시지 텍스트 문자열 해당 사항 없음 전송할 메시지의 텍스트를 지정합니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션
is_success True/False is_success:False
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

메시지가 전송된 경우 (is_success=true): '메시지가 전송되었습니다.'

작업이 실패하고 플레이북 실행을 중지합니다.

연결 없음 또는 잘못된 사용자 인증 정보와 같은 심각한 오류가 보고되는 경우: ''메시지 보내기' 작업 실행 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반

고급 메시지 보내기

설명

제공된 메시지 JSON 페이로드에 따라 Google Chat 스페이스에 고급 메시지를 보냅니다.

매개변수

매개변수 표시 이름 유형 기본값 필수 항목 설명
스페이스 이름 문자열 해당 사항 없음

메시지를 보낼 스페이스 이름을 지정합니다.

스페이스 이름 예: AAAAdaTsel0

메시지 JSON 페이로드 문자열 {"cards":[{"sections":[{"widgets":[{"image":{"imageUrl":"https://..."}},{"buttons":[{"textButton":{"text":"OPEN IN GOOGLE MAPS","onClick":{"openLink":{"url":"https://..."}}}}]}]}]}]}

메시지와 함께 전송할 JSON 페이로드를 지정합니다.

메시지 페이로드의 예는 이 도움말을 참고하세요.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션
is_success True/False is_success:False
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

메시지가 전송된 경우 (is_success=True): '메시지가 전송되었습니다.'

작업이 실패하고 플레이북 실행을 중지합니다.

제공된 JSON 페이로드가 유효하지 않은 경우: 'Error executing action "Send Advanced Message". 이유: 제공된 메시지 JSON 페이로드가 유효하지 않습니다. "

연결 없음 또는 잘못된 사용자 인증 정보와 같은 심각한 오류가 보고되는 경우: ''고급 메시지 보내기' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

일반

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.