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

Trang này mô tả cách kết nối ứng dụng Google Chat với một dịch vụ hoặc công cụ không thuộc Google Chat. Tuy các ứng dụng Chat vốn có sức mạnh vượt trội, như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 kết nối tài khoản, cấp quyền truy cập vào dữ liệu, hiển thị thêm dữ liệu hoặc định cấu hình các lựa chọn ưu tiên của người dùng.

Yêu cầu người dùng định cấu hình ứng dụng Chat

Nếu việc hoàn tất một yêu cầu đòi hỏi cấu hình bổ sung mà không thể hoàn tất trực tiếp trong ứng dụng Chat, hãy trả về một URL cấu hình cho người dùng trong câu trả lời thông thường hoặc hiển thị ở chế độ riêng tư bằng biểu mẫu sau:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "CONFIGURATION_URL"
  }
}

Thao tác này sẽ yêu cầu Google Chat hiển thị cho người dùng lời nhắc riêng tư, trong đó CONFIGURATION_URL là một đường liên kết để người dùng truy cập để xác thực, uỷ quyền hoặc định cấu hình bổ sung. Phản hồi REQUEST_CONFIG loại trừ lẫn nhau bằng một 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 đều bị bỏ qua.

Hoàn tất yêu cầu định cấu hình

Mỗi sự kiện tương tác MESSAGE mà ứng dụng Chat nhận được cũng bao gồm một thông số configCompleteRedirectUrl. URL này phải được mã hoá trong URL cấu hình để sử dụng sau khi hoàn tất quá trình. Việc chuyển hướng đến URL này sẽ báo hiệu tới Google Chat rằng yêu cầu định cấu hình đã được thực hiện.

Khi ứng dụng Chat khởi động, luồng phụ thuộc vào tin nhắn cụ thể nhận được. Để phản hồi một tin nhắn như @app help, ứng dụng Chat sẽ trả lời bằng tin nhắn mà không cần cấu hình bổ sung.

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

  1. Xoá lời nhắc hiển thị cho người dùng khởi tạo.
  2. Chuyển đổi tin nhắn gốc thành công khai để các thành viên khác trong không gian có thể nhìn thấy tin nhắn đó.
  3. Gửi tin nhắn ban đầu đến cùng một ứng dụng Chat lần thứ hai.

Việc truy cập vào configCompleteRedirectUrl chỉ ảnh hưởng đến một thông báo dành cho người dùng. Nếu người dùng đã cố gắng nhắn tin cho một ứng dụng Chat nhiều lần và do đó nhận được nhiều lời nhắc, thì việc nhấp qua một lời nhắc cụ thể rồi hoàn tất quy trình xác thực và định cấu hình sẽ chỉ ảnh hưởng đến tin nhắn cụ thể đó. Những tin nhắn khác sẽ không thay đổi.

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

Xác thực người dùng Chat bên ngoài 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 đến một URL bên ngoài 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 được cấp 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 ứng với mã nhận dạng người dùng trong Google Chat.

Mặc dù hai mã này không hoàn toàn giống hệt nhau, nhưng bạn có thể ép buộc hai mã này. Để chuyển đổi giá trị của nội dung xác nhận quyền sở hữu sub thành users/{user} của Google Chat, hãy thêm users/ vào trước giá trị đó. Ví dụ: giá trị xác nhận quyền sở hữu của 123 tương đương với tên người dùng users/123 trong tin nhắn gửi đến ứng dụng Chat.