채팅 앱 및 Google Chat API 요청을 인증하고 승인합니다.

인증 및 승인은 ID와 인증 정보를 검증하고 각각 리소스에 대한 액세스 권한을 제공합니다 이 문서에서는 인증 및 Chat 앱 및 Chat API 요청에 대한 승인 작업

프로세스 개요

다음 다이어그램은 개략적인 인증 단계와 Google Chat에 대한 승인:

Google Chat 인증 및 승인의 대략적인 단계
그림 1. Google Chat 인증 및 승인의 대략적인 단계

  1. Google Cloud 프로젝트를 구성하고, Chat API를 사용 설정하고, 채팅 앱: 개발하는 동안 Google Cloud 프로젝트입니다. Google Cloud 프로젝트에서 Chat API를 사용 설정합니다. 채팅 앱을 구성하고 인증을 설정해야 합니다. 자세한 내용은 Google Workspace에서 개발하기채팅 앱 빌드를 참조하세요.

  2. Call Chat API: 앱에서 Chat API에서 사용자 인증 정보를 Chat API 만약 사용자 인증 정보가 서비스 계정으로 인증되면 사용자 인증 정보가 부분에 추가되어야 합니다. 앱에서 Chat API를 호출해야 하는 경우 사용자의 인증을 사용하여 사용자의 인증을 다시 요청하는 경우 로그인해야 합니다.

  3. 리소스 요청: 앱에서 범위 인증 설정 시 지정할 수 있습니다.

  4. 동의 요청: 앱에서 사용자로 인증하는 경우 Google Play에서 다음을 표시합니다. 사용자가 앱에 권한을 부여할지 결정할 수 있는 OAuth 동의 화면 액세스를 요청할 수 있습니다 서비스 계정을 사용한 인증이 작동하지 않음 사용자 동의가 필요합니다.

  5. 승인된 리소스 요청 전송: 사용자가 App Bundle에 사용자 인증 정보 및 사용자가 승인한 요청에 포함할 수 있습니다 요청이 Google 인증 서버로 전송됩니다. 액세스 토큰을 얻을 수 있습니다.

  6. Google이 액세스 토큰 반환: 액세스 토큰에는 범위를 제공합니다 반환된 범위 목록이 앱은 토큰에 의해 제한된 모든 기능을 사용 중지합니다.

  7. 요청한 리소스 액세스: 앱은 Google에서 제공한 액세스 토큰을 사용하여 Chat API를 호출하고 Chat API 리소스에 액세스합니다.

  8. 갱신 토큰 받기 (선택사항): 앱이 Google Chat API가 단일 액세스 토큰의 수명을 초과하여 갱신 토큰을 사용할 수 있습니다. 자세한 내용은 OAuth 2.0을 사용하여 Google API에 액세스합니다.

  9. 추가 리소스 요청: 앱에 더 많은 액세스 권한이 필요한 경우 사용자에게 요청 새 범위를 부여하므로 액세스 토큰을 얻기 위한 새 요청이 생성됩니다. (3~6단계).

Chat 앱에 인증이 필요한 경우

채팅 앱에서 사용자 상호작용에 응답하여 메시지를 보낼 수 있음 있습니다. 또한 사용자를 대신하여 다음과 같은 작업을 완료할 수 있습니다. Chat 스페이스를 만들거나 채팅방의 사용자 목록을 가져오는 것은 Chat 스페이스.

채팅 앱은 사용자 상호작용(채팅 앱이 Chat API 또는 다른 Google API를 사용하는 동안 응답을 처리할 수 있습니다

비동기 메일을 보내거나 사용자를 대신하여 작업을 수행하려면 채팅 앱은 Chat API 인증 및 승인이 필요합니다

사용자 상호작용에 대한 응답에는 인증이 필요하지 않음

Google Chat 앱은 사용자 또는 동기식으로 수신하고 응답하는 채팅 앱 상호작용 이벤트입니다.

Google Chat 앱은 사용자가 상호작용하거나 다음을 포함한 채팅 앱을 호출합니다.

  • 사용자가 Chat 앱으로 메시지를 보냅니다.
  • 사용자가 채팅 앱을 @멘션합니다.
  • 사용자가 채팅 앱의 슬래시 명령어

다음 다이어그램은 채팅 사용자 및 채팅 앱:

<ph type="x-smartling-placeholder">
</ph> 채팅 앱 상호작용 이벤트에는 승인이 필요하지 않습니다.
그림 2. 채팅 앱 상호작용 이벤트에 인증이 필요하지 않음

  1. 사용자가 다음 시간에 채팅 앱에 메시지를 보냅니다. Google Chat
  2. Google Chat에서 메시지를 앱으로 전달합니다.
  3. 앱이 메시지를 수신하고 처리한 다음 Google Chat
  4. Google Chat은 사용자 또는 스페이스에서 응답을 렌더링합니다.

이 시퀀스는 채팅 앱 상호작용마다 반복됩니다. 이벤트를 처리합니다.

비동기 메일 인증 필요

비동기 메시지는 채팅 앱에서 요청을 Chat API 인증과 승인이 필요합니다

Chat API를 호출하면 채팅 앱에서 메시지를 게시할 수 있습니다. 사용자를 대신하여 작업을 완료하고 데이터에 액세스할 수 있습니다. 대상 예를 들어 서버 중단이 감지되면 채팅 앱이 Chat API를 사용하여 다음을 수행할 수 있습니다.

  • 문제를 조사하고 해결하기 위한 전용 Chat 스페이스를 만들고 있습니다
  • Chat 스페이스에 사용자를 추가합니다.
  • Chat 스페이스에 메시지를 게시하여 있습니다

다음 다이어그램은 Chat 앱 및 Chat 스페이스:

비동기 메시지에 인증 필요
그림 3. 비동기 메시지에는 인증이 필요합니다.

  1. 채팅 앱은 다음을 호출하여 메시지를 만듭니다. Chat API는 spaces.messages.create 메서드, HTTP 요청에 사용자 인증 정보를 포함합니다.
  2. Google Chat은 다음을 사용하여 채팅 앱을 인증합니다. 사용자 인증 정보를 제공합니다
  3. Google Chat이 앱의 메시지를 지정된 Chat으로 렌더링 있습니다.

Chat API 범위

OAuth 동의 화면 구성 및 범위 선택 사용자와 앱 검토자에게 표시되는 정보를 정의하고 나중에 게시할 수 있습니다.

앱에 부여되는 액세스 수준을 정의하려면 승인 범위를 선언해야 합니다. 승인 범위는 OAuth 2.0 URI입니다. Google Workspace 앱 이름이 포함된 문자열(어떤 종류의 데이터) 액세스할 수 있습니다.

민감하지 않은 범위

범위 코드 설명
https://www.googleapis.com/auth/chat.bot

chat.bot 범위는 서비스 계정만 지원합니다. 나 다른 사용자 인증 정보 또는 도메인 전체 위임 사용할 수 있습니다

Chat 앱에서 채팅을 보고 메시지를 보낼 수 있도록 허용합니다. 제공 Chat 앱에서 사용할 수 있는 모든 기능에 액세스할 수 있습니다.

민감한 범위

범위 코드 설명
https://www.googleapis.com/auth/chat.spaces 대화 및 스페이스를 만들고 메타데이터( 채팅 기록 설정 및 액세스 설정)을 사용합니다.
https://www.googleapis.com/auth/chat.spaces.create Chat에서 새 대화를 만드세요.
https://www.googleapis.com/auth/chat.spaces.readonly Chat에서 채팅 및 스페이스를 확인하세요.
https://www.googleapis.com/auth/chat.memberships Chat의 대화 참여자 확인, 추가, 업데이트, 삭제
https://www.googleapis.com/auth/chat.memberships.app Google Chat의 대화에서 자체적으로 추가 및 삭제
https://www.googleapis.com/auth/chat.memberships.readonly Chat 대화 참여자 보기
https://www.googleapis.com/auth/chat.messages.create Chat에서 메시지를 작성하고 전송합니다.
https://www.googleapis.com/auth/chat.messages.reactions Chat에서 메시지에 대한 반응을 확인, 추가, 삭제합니다.
https://www.googleapis.com/auth/chat.messages.reactions.create Chat의 메시지에 반응을 추가합니다.
https://www.googleapis.com/auth/chat.messages.reactions.readonly Chat에서 메시지에 대한 반응을 확인합니다.
https://www.googleapis.com/auth/chat.users.readstate Chat 대화의 마지막 읽기 시간 확인 및 수정
https://www.googleapis.com/auth/chat.users.readstate.readonly Chat 대화를 마지막으로 읽은 시간 보기
https://www.googleapis.com/auth/chat.admin.spaces.readonly Chat에서 관리자 도메인에서 소유한 채팅 및 스페이스를 확인합니다.
https://www.googleapis.com/auth/chat.admin.spaces Chat에서 관리자 도메인에서 소유한 채팅 및 스페이스를 보거나 수정합니다.
https://www.googleapis.com/auth/chat.admin.memberships.readonly Chat에서 관리자 도메인에서 소유한 대화의 참여자 및 관리자를 확인합니다.
https://www.googleapis.com/auth/chat.admin.memberships Chat의 관리자 도메인에서 소유하는 대화의 참여자 및 관리자를 확인, 추가, 업데이트, 삭제

제한된 범위

범위 코드 설명
https://www.googleapis.com/auth/chat.delete 대화 및 스페이스를 삭제하고 관련 파일에 대한 액세스 권한 삭제 채팅합니다.
https://www.googleapis.com/auth/chat.import 스페이스, 메시지, 멤버십을 Chat으로 가져오기 대상 자세한 내용은 Chat 앱이 데이터를 가져오도록 승인하기
https://www.googleapis.com/auth/chat.messages 메일 보기, 작성, 전송, 업데이트, 삭제 및 추가, 보기, 메시지에 대한 반응 삭제
https://www.googleapis.com/auth/chat.messages.readonly Chat에서 메시지와 반응을 확인하세요.
https://www.googleapis.com/auth/chat.admin.delete 관리자 도메인에서 소유한 대화 및 스페이스를 삭제하고 관련 파일에 대한 액세스 권한 삭제 채팅합니다.

위 표의 범위는 다음 정의:

앱에서 다른 Google API에 액세스해야 하는 경우 해당 범위를 추가할 수 있습니다. 확인할 수 있습니다 Google API 범위에 대한 자세한 내용은 OAuth 2.0을 사용하여 Google API 액세스

Google Workspace API의 범위에 대해 자세히 알아보려면 다음을 참고하세요. OAuth 동의 화면 구성 및 범위 선택

필수 인증 유형

Chat 앱이 다음을 사용하여 인증하고 승인할 수 있는 두 가지 방법이 있습니다. Chat API: 사용자 인증 정보 또는 서비스 계정

사용자 인증 정보 승인을 통해 채팅 앱은 다음 작업을 할 수 있습니다. 사용자 데이터에 액세스하고 사용자를 대신하여 작업을 완료할 수 있습니다. OAuth 범위는 승인된 데이터 및 작업을 지정합니다.

앱 승인을 사용하면 채팅 앱이 API를 앱처럼 사용할 수 있습니다 앱 승인 항상 chat.bot 승인 범위를 사용합니다.

특정 API 요청에 사용할 사용자 인증 정보의 유형을 결정할 때 일부 API 메서드는 사용자 인증 정보 API 메서드가 두 사용자 인증 정보를 모두 지원하는 경우 사용자 인증 정보의 유형 반환되는 결과에 영향을 줍니다.

  • 앱 승인을 사용하면 메서드는 이 실행할 수 있는 리소스만 반환합니다. 액세스할 수 있습니다
  • 사용자 승인을 사용하면 이 메서드는 user님이 승인했던 리소스만 채팅 UI에서 액세스할 수 있습니다.

예를 들어 앱 승인을 통해 ListSpaces 메서드를 호출하면 앱이 속한 스페이스 목록입니다. 사용자와 ListSpaces 호출 승인은 사용자가 속한 스페이스 목록을 반환합니다. 포함 연습에서는 앱이 Chat API(원하는 기능에 따라 다름)

비동기 Chat API 호출의 경우

다음 표에는 Chat API 메서드와 지원되는 메서드가 나와 있습니다. 승인 범위:

메서드 사용자 인증 지원됨 앱 인증 지원 승인 범위 지원됨
스페이스  
스페이스 만들기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.spaces.create
  • chat.spaces
  • chat.import
스페이스 설정하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.spaces.create
  • chat.spaces
스페이스 사용하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.spaces.readonly
  • chat.spaces
앱 인증을 사용하는 경우:
  • chat.bot
관리자 권한을 사용한 사용자 인증의 경우 <ph type="x-smartling-placeholder">
    </ph>
  • chat.admin.spaces.readonly
스페이스 나열 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.spaces.readonly
  • chat.spaces
앱 인증을 사용하는 경우:
  • chat.bot
스페이스 검색 관리자 권한을 사용한 사용자 인증의 경우 <ph type="x-smartling-placeholder">
    </ph>
  • chat.admin.spaces.readonly
스페이스 업데이트하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.spaces
  • chat.import
관리자 권한을 사용한 사용자 인증의 경우 <ph type="x-smartling-placeholder">
    </ph>
  • chat.admin.spaces
스페이스 삭제하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.delete
  • chat.import
관리자 권한을 사용한 사용자 인증의 경우 <ph type="x-smartling-placeholder">
    </ph>
  • chat.admin.delete
스페이스 가져오기 프로세스 완료하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.import
채팅 메시지 찾기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.spaces.readonly
  • chat.spaces
앱 인증을 사용하는 경우:
  • chat.bot
구성원  
구성원 만들기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.memberships
  • chat.memberships.app
  • chat.import
관리자 권한을 사용한 사용자 인증의 경우 <ph type="x-smartling-placeholder">
    </ph>
  • chat.admin.memberships
회원 가입하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.memberships.readonly
  • chat.memberships
앱 인증을 사용하는 경우:
  • chat.bot
관리자 권한을 사용한 사용자 인증의 경우 <ph type="x-smartling-placeholder">
    </ph>
  • chat.admin.memberships.readonly
목록 회원 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.memberships.readonly
  • chat.memberships
  • chat.import
앱 인증을 사용하는 경우:
  • chat.bot
관리자 권한을 사용한 사용자 인증의 경우 <ph type="x-smartling-placeholder">
    </ph>
  • chat.admin.memberships.readonly
구성원 삭제하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.memberships
  • chat.memberships.app
  • chat.import
관리자 권한을 사용한 사용자 인증의 경우 <ph type="x-smartling-placeholder">
    </ph>
  • chat.admin.memberships
회원 업데이트하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.memberships
  • chat.import
관리자 권한을 사용한 사용자 인증의 경우 <ph type="x-smartling-placeholder">
    </ph>
  • chat.admin.memberships
메시지  
메시지 작성하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages.create
  • chat.messages
  • chat.import
앱 인증을 사용하는 경우:
  • chat.bot
메시지 받기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages.readonly
  • chat.messages
앱 인증을 사용하는 경우:
  • chat.bot
메시지 나열 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages.readonly
  • chat.messages
  • chat.import
메시지 업데이트하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages
  • chat.import
앱 인증을 사용하는 경우:
  • chat.bot
메시지 삭제하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages
  • chat.import
앱 인증을 사용하는 경우:
  • chat.bot
리액션  
리액션 만들기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages.reactions.create
  • chat.messages.reactions
  • chat.messages
  • chat.import
반응 나열 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages.reactions.readonly
  • chat.messages.reactions
  • chat.messages.readonly
  • chat.messages
반응 삭제하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages.reactions
  • chat.messages
  • chat.import
미디어 및 첨부파일  
미디어를 첨부파일로 업로드하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages.create
  • chat.messages
  • chat.import
미디어 다운로드 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages.readonly
  • chat.messages
앱 인증을 사용하는 경우:
  • chat.bot
메시지 첨부파일 받기 앱 인증에서 다음을 실행합니다. <ph type="x-smartling-placeholder">
    </ph>
  • chat.bot
사용자 읽기 상태
사용자의 스페이스 읽기 상태 가져오기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.users.readstate
  • chat.users.readstate.readonly
사용자의 스페이스 읽기 상태 업데이트하기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.users.readstate
사용자의 스레드 읽기 상태 가져오기 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.users.readstate
  • chat.users.readstate.readonly
스페이스 이벤트
<ph type="x-smartling-placeholder"></ph> 공간 이벤트 가져오기 를 통해 개인정보처리방침을 정의할 수 있습니다. 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages
  • chat.messages.readonly
  • chat.messages.reactions
  • chat.messages.reactions.readonly
  • chat.memberships
  • chat.memberships.readonly
  • chat.spaces
  • chat.spaces.readonly
<ph type="x-smartling-placeholder"></ph> 스페이스 이벤트 나열 를 통해 개인정보처리방침을 정의할 수 있습니다. 사용자 인증을 사용하는 경우: <ph type="x-smartling-placeholder">
    </ph>
  • chat.messages
  • chat.messages.readonly
  • chat.messages.reactions
  • chat.messages.reactions.readonly
  • chat.memberships
  • chat.memberships.readonly
  • chat.spaces
  • chat.spaces.readonly

채팅 앱 상호작용 이벤트의 경우

다음 표에는 사용자가 채팅 앱과 상호작용하는 일반적인 방법과 인증 필요 또는 지원 여부가 나와 있습니다.

시나리오 인증이 필요하지 않음 사용자 인증 지원됨 앱 인증 지원
다음에서 메시지 수신:
Chat 앱 상호작용 이벤트
Apps Script 콜백
Google Cloud Pub/Sub
메시지에 응답하기:
동기식으로 Chat 앱 상호작용 이벤트 사용
동기식으로 Apps Script 콜백 반환 값 사용
새 메시지 보내기:
수신 웹훅 포함