Kết nối ứng dụng nhắn tin với các dịch vụ và công cụ khác

Mặc dù các ứng dụng hoạt động độc lập, nhưng chúng thường hoạt động phối hợp với các hệ thống khác và yêu cầu các ứng dụng đồng hành phải kết nối các tài khoản, cho phép truy cập dữ liệu, hiển thị dữ liệu bổ sung hoặc định cấu hình các tuỳ chọn của người dùng.

Yêu cầu cấu hình ứng dụng

Ngoài việc hiển thị URL như một phần của phản hồi thông thường, ứng dụng có thể hiển thị riêng URL cấu hình cho người dùng để phản hồi thông báo.

Trả về URL cấu hình

Nếu hoàn tất yêu cầu cần có cấu hình bổ sung không thể hoàn tất trực tiếp trong ứng dụng, hãy trả về phản hồi từ biểu mẫu sau:

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

Lệnh này sẽ yêu cầu Google Chat hiển thị cho người dùng lời nhắc riêng tư, kèm theo một đường liên kết để truy cập vào URL cấu hình được cung cấp để xác thực, ủy quyền hoặc định cấu hình. Phản hồi yêu cầu cấu hình loại trừ lẫn nhau với thông báo phản hồi thông thường. Mọi văn bản, thẻ hoặc thuộc tính khác sẽ bị bỏ qua.

Mọi sự kiện trong ứng dụng của bạn đều có thông số configCompleteRedirectUrl. URL này phải được mã hoá trong URL cấu hình của bạn để sử dụng khi hoàn tất quá trình này. Việc chuyển hướng đến URL này sẽ báo hiệu cho Google Chat biết rằng yêu cầu cấu hình đã được thực hiện.

Khi ứng dụng của bạn bắt đầu, quy trình có thể phụ thuộc vào thông báo cụ thể nhận được. Để phản hồi một thông báo như @app help, ứng dụng phải phản hồi bằng một thông báo mà không cần bổ sung cấu hình.

Khi người dùng được chuyển hướng đến configCompleteRedirectUrl thành công như được cung cấp trong tin nhắn gốc, Google Chat sẽ thực hiện các bước sau:

  1. Xóa lời nhắc hiển thị cho người dùng bắt đầu
  2. Chuyển đổi tin nhắn gốc thành công khai, hiển thị tin nhắn đó cho các thành viên khác trong không gian
  3. Gửi thông báo gốc tới cùng một ứng dụng lần thứ hai

Việc truy cập vào configCompleteRedirectUrl chỉ ảnh hưởng đến một thông báo cho người dùng. Nếu người dùng đã thử thông báo cho một ứng dụng nhiều lần và kết quả là nhận được nhiều lời nhắc, thì việc nhấp vào một lời nhắc cụ thể và hoàn tất quá trình xác thực / cấu hình chỉ ảnh hưởng đến thông báo / lời nhắc cụ thể đó. Các thông báo và lời nhắc khác sẽ không thay đổi.

Khi một sự kiện được gửi lại theo cách này, thông thường, sự kiện đó phải giống với sự kiện gốc; tuy nhiên, có một số tình huống mà sự kiện có thể khác biệt. Ví dụ: khi một thông báo đề cập đến cả ứng dụng A và ứng dụng B, người dùng sẽ có thể chỉnh sửa văn bản thông báo nếu ứng dụng A phản hồi bằng một thông báo trước khi xác thực bằng ứng dụng B. Trong trường hợp này, ứng dụng B sẽ nhận được văn bản thông báo đã chỉnh sửa sau khi người dùng hoàn tất quy trình xác thực.

Xác định người dùng trong thông báo của ứng dụng

Mỗi thông báo được gửi tới ứng dụng của bạn bao gồm danh tính của người dùng tương tác với ứng dụng.

Đoạn JSON mẫu bên dưới cho thấy định dạng dự kiến của danh tính người dùng trong thông báo của ứng dụng.

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

Sử dụng giá trị của thuộc tính users.name làm mã nhận dạng chính cho người dùng. Giá trị này là mã nhận dạng ổn định và duy nhất cho mỗi người dùng.

Xác định người dùng ứng dụng Chat bên ngoài Google Chat

Trong một số trường hợp, chẳng hạn như yêu cầu uỷ quyền OAuth cho một API, ứng dụng của bạn cần liên kết với một URL bên ngoài Google Chat trong khi vẫn duy trì danh tính người dùng. Cách tốt nhất để xác định người dùng trong những trường hợp này là bảo vệ ứng dụng đích bằng tính năng Đăng nhập bằng Google.

Sử dụng mã thông báo danh tính đã phát hành trong quá trình đăng nhập để lấy mã nhận dạng người dùng. Thông báo xác nhận quyền sở hữu sub chứa mã nhận dạng duy nhất của người dùng và có thể tương quan với mã nhận dạng đó trong Google Chat.

Mặc dù 2 mã nhận dạng không giống hệt nhau, nhưng chúng rất dễ bị ép buộc. Để chuyển đổi giá trị của thông báo xác nhận quyền sở hữu sub thành tên người dùng Google Chat, hãy thêm "users/" vào trước giá trị. Ví dụ: Giá trị của thông báo xác nhận quyền sở hữu là 123 tương đương với tên người dùng users/123 trong các tin nhắn gửi tới ứng dụng Chat.

Ví dụ đầy đủ

Ứng dụng MyProfile minh họa cách sử dụng phản hồi REQUEST_CONFIG để bắt đầu cấu hình ứng dụng và sử dụng mã thông báo nhận dạng từ phản hồi Đăng nhập bằng Google để xác định người dùng.