Chat 앱을 다른 서비스 및 도구와 연결

앱은 그 자체로 강력하지만 다른 시스템과 함께 작동하는 경우가 많으며 계정 연결, 데이터 액세스 승인, 추가 데이터 표시, 사용자 환경설정 구성 시 컴패니언 애플리케이션이 필요합니다.

앱 구성 요청

앱은 일반 답장의 일부로 URL을 표시하는 것 외에도 메시지에 대한 응답으로 사용자에게 구성 URL을 비공개로 표시할 수 있습니다.

구성 URL 반환

요청을 완료하려면 앱에서 직접 완료할 수 없는 추가 구성이 필요한 경우 다음 양식의 응답을 반환합니다.

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "<your-config-URL>"
  }
}

이렇게 하면 인증, 승인 또는 구성을 위해 제공된 구성 URL을 방문할 수 있는 링크가 포함된 비공개 메시지가 사용자에게 표시됩니다. request-config 응답은 일반 응답 메시지와 함께 사용할 수 없습니다. 텍스트, 카드 또는 기타 속성은 무시됩니다.

앱의 모든 이벤트에는 configCompleteRedirectUrl 매개변수도 포함됩니다. 이 URL은 프로세스 완료 시 사용할 구성 URL에 인코딩되어야 합니다. 이 URL로 리디렉션하면 구성 요청이 처리되었음을 Google Chat에 알립니다.

앱이 시작될 때 흐름은 수신된 특정 메시지에 따라 달라질 수 있습니다. @app help와 같은 메시지에 대한 응답으로 앱은 추가 구성 없이 메시지로 응답해야 합니다.

사용자가 원본 메시지에 제공된 configCompleteRedirectUrl로 리디렉션되면 Google Chat에서 다음 단계를 실행합니다.

  1. 시작 사용자에게 표시된 메시지 삭제
  2. 원본 메시지를 공개로 변환하여 스페이스의 다른 참여자에게도 표시합니다.
  3. 원본 메시지를 같은 앱에 다시 전달

configCompleteRedirectUrl 방문은 단일 사용자 메시지에만 영향을 미칩니다. 사용자가 앱에 여러 번 메시지 전송을 시도했기 때문에 메시지가 여러 개 표시되면 특정 메시지를 클릭하고 인증 / 구성 절차를 완료하면 해당 메시지 / 메시지에만 영향을 줍니다. 다른 메시지와 메시지는 변경되지 않습니다.

이벤트가 이러한 방식으로 다시 전달되면 일반적으로 원래 이벤트와 동일해야 하지만, 경우에 따라 이벤트가 달라질 수 있습니다. 예를 들어 메시지에 앱 A와 앱 B가 모두 언급될 경우 사용자는 앱 B가 인증을 진행하기 전에 앱 A가 일반 메시지로 응답하면 메시지 텍스트를 수정할 수 있습니다. 이 경우 앱 B는 사용자가 인증을 완료한 후 수정된 메시지 텍스트를 수신합니다.

앱 메시지에서 사용자 식별

앱으로 전송되는 각 메시지에는 앱과 상호작용하는 사용자의 ID가 포함됩니다.

아래의 JSON 프래그먼트 예는 앱에 보내는 메시지에 예상되는 사용자 ID 형식을 보여줍니다.

{
  ...,
  "user": {
    "name": "users/12345678901234567890",
    "displayName": "Sasha",
    "avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
    "email": "sasha@example.com"
  }
}

users.name 속성 값을 사용자의 기본 ID로 사용합니다. 값은 각 사용자의 안정적인 고유 ID입니다.

Google Chat 외부의 Chat 사용자 확인하기

경우에 따라 API에 대한 OAuth 승인을 요청하는 경우 앱이 사용자 ID를 유지하면서 Google Chat 외부의 URL에 연결해야 합니다. 이러한 경우 사용자를 식별하는 가장 좋은 방법은 Google 로그인으로 대상 앱을 보호하는 것입니다.

로그인 시 발급된 ID 토큰을 사용하여 사용자 ID를 가져옵니다. sub 클레임은 사용자의 고유 ID를 포함하며 Google Chat의 ID와 상관관계가 있습니다.

두 ID는 완전히 동일하지는 않지만 쉽게 강제됩니다. sub 클레임 값을 Google Chat 사용자 이름으로 강제 변환하려면 값 앞에 "users/"를 추가합니다. 예를 들어 123의 클레임 값은 Chat 앱으로 보내는 메시지의 사용자 이름 users/123과 동일합니다.

전체 예

MyProfile 앱REQUEST_CONFIG 응답을 사용하여 앱 구성을 시작하는 방법을 보여주고 Google 로그인 응답의 ID 토큰을 사용하여 사용자를 식별합니다.