Hướng dẫn sử dụng trò chuyện

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Dịch vụ gửi tin nhắn API là tương đương với Động cơ MessagingService, cho phép bạn giao tiếp qua các máy chủ và khách hàng trải nghiệm của bạn.API Động cơ chỉ cho phép bạn viết và cập nhật kịch bản thủ công trong Studio để xuất bản tin nhắn, nhưng API Mở đám mây cho phép bạn gửi tin nhắn đến các máy chủ trực tiếp từ các công cụ bên ngoài để tự động hóa và cải thiện các quy trình làm việc của bạn.

Sử dụng

Có một số công cụ hữu ích mà bạn có thể xây dựng bằng cách hỗ trợ giao tiếp giữa các máy chủ với API Dịch vụ Tin nhắn, bao gồm:

  • Cổng thông báo : Một cổng web có thể hữu ích để hỗ trợ gửi thông báo cho tất cả người dùng trên các máy chủ trong trải nghiệm của bạn, chẳng hạn như thông báo về một sự kiện sắp tới, một cập nhật và người chiến thắng cho một cuộc thi.Trên cổng, bạn có thể chỉnh sửa một tin nhắn và nhấp vào một nút gọi API để gửi tin nhắn cho tất cả người dùng hoặc người dùng được chọn.

  • Hệ thống kiểm duyệt : Một hệ thống kiểm duyệt có thể giúp giữ cho trải nghiệm của bạn an toàn và an ninh.Khi phát hiện một người dùng có hành vi không phù hợp, bạn có thể xuất một thông điệp để kích hoạt máy chủ trải nghiệm để cảnh báo hoặc cấm người dùng cụ thể.Bạn cũng có thể sử dụng cửa hàng dữ liệu trong hệ thống kiểm duyệt để thêm tài khoản người dùng vào danh sách chặn không cho họ tham gia lại.

  • Bảng điều khiển LiveOps : Bảng điều khiển LiveOps là công cụ hữu ích để quản lý các sự kiện trực tiếp, chẳng hạn như một bữa tiệc Halloween.Trên bảng điều khiển, bạn có thể pre-code một sự kiện, cập nhật tin nhắn sự kiện, kích hoạt sự kiện khi nó sẵn sàng và thưởng cho người dùng được chọn với các vật phẩm đặc biệt như một vương miện ảo mà không cập nhật bất kỳ mã trải nghiệm nào.

Giới hạn

Giới hạnMô tả
Tốc độRoblox giới hạn yêu cầu tin nhắn tại 50 + (5 * number_of_players_in_experience) .Ví dụ, một trải nghiệm với 20 người chơi bắt đầu thắt chặt tại 150 yêu cầu tin nhắn mỗi phút.
Kích thước chủ đề80 ký tự
Kích thước tin nhắn1,024 ký tự (1 KB)

Thiết lập một chủ đề cho gửi tin nhắn

Trước khi bạn có thể xuất bản một tin nhắn lên các máy chủ trực tiếp của trải nghiệm, bạn phải thiết lập một chủ đề , đó là kênh tin nhắn tùy chỉnh có thể truy cập từ nhiều máy chủ.Sau khi xác định một chủ đề, bạn đăng ký người dùng cho chủ đề để nhận các tin nhắn đến của bạn.

Hiện tại, bạn chỉ có thể định nghĩa một chủ đề trong Studio và sử dụng API Luau MessagingService:SubscribeAsync() để đăng ký người dùng cho nó.Ví dụ mã sau đây đăng ký bất kỳ người dùng nào vào một chủ đề khi họ tham gia trải nghiệm:

Set up and Subscribe Users to a Topic

local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- Xác định và đăng ký chủ đề
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- Huỷ đăng ký khỏi chủ đề khi có sự thay đổi dòng dõi người chơi
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Xuất bản tin nhắn lên các máy chủ sống

Sau khi thiết lập một chủ đề, xuất bản một tin nhắn lên các máy chủ trực tiếp của trải nghiệm của bạn:

  1. Tạo một chìa khóa API trên Bảng điều khiển Nhà sáng tạo và sao chép nó ở một nơi an toàn. Hãy chắc chắn rằng bạn thực hiện các cài đặt sau:

    1. Thêm dịch vụ tin nhắn vào Quyền truy cập .
    2. Chọn một trải nghiệm, và thêm hoạt động universal-messaging-service:publish .
  2. Nhận ID Vũ trụ cho trải nghiệm của bạn:

    1. Điều hướng đến Bảng điều khiển Nhà sáng tạo.

    2. Tìm trải nghiệm mà bạn muốn xuất bản tin nhắn của mình.

    3. Chuyển con trỏ qua hình hình nhỏcủa một trải nghiệm, nhấp vào nút và chọn Sao chép ID Vũ trụ .

  3. Thêm chìa khóa API và vũ trụ vào yêu cầu POST , như trong ví dụ này:

    Ví dụ yêu cầu xuất bản một tin nhắn

    curl -L -X POST 'https://apis.roblox.com/cloud/v2/universes/{universe}:publishMessage' \
    -H 'x-api-key: {api-key}' \
    -H 'Content-Type: application/json' \
    --data '{
    "topic": "your-topic",
    "message": "Hello, everyone!"
    }'
  4. Gửi yêu cầu HTTP để xuất bản tin nhắn.

Thêm API Dịch vụ truyền tin vào ứng dụng OAuth 2.0

Bạn có thể tạo ứng dụng OAuth 2.0 cho phép người dùng của bạn xuất bản tin nhắn lên các máy chủ trực tiếp của họ.

Để sử dụng API Dịch vụ Tin nhắn cho ứng dụng của bạn và yêu cầu quyền truy cập từ người dùng của bạn, thực hiện các cài đặt sau:

  1. Khi đăng ký ứng dụng của bạn, dưới quyền truy cập , hãy chọn phạm vi dịch vụ gửi tin nhắn vũ trụ:phát hành .

  2. Khi triển khai dòng xác nhận quyền truy cập, bao gồm universe-messaging-service:publish trong tham số scope của URL xác nhận quyền truy cập chuyển hướng người dùng trở lại ứng dụng của bạn, giống như ví dụ sau:


    https://authorize.roblox.com?client_id=816547628409595165403873012&redirect_uri=https://my-app.com/redirect&scope=openid+universe-messaging-service:publish&response_type=Code&prompts=login+consent&nonce=12345&state=6789
  3. Yêu cầu truy cập vào universeId của trải nghiệm mà người dùng muốn xuất bản tin nhắn của họ.Ứng dụng của bạn có thể gửi một yêu cầu đến điểm cuối tài nguyên token với thẻ truy cập, ID khách hàng và bí mật hoặc , tùy thuộc vào ứng dụng của bạn về dòng chỉ định quyền của bạn, như tham số yêu cầu để có được danh sách các trải nghiệm mà người dùng đã được phép thực hiện:

    Yêu cầu ví dụ

    curl --location --request POST 'https://apis.roblox.com/oauth/v1/token/resources' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'token=<access_token>' \
    --data-urlencode 'client_id=<client_id>' \
    --data-urlencode 'client_secret=<client_secret>'

    Điểm cuối này trả về một danh sách của universeIds như câu trả lời ví dụ sau:

    Ví dụ phản hồi

    {
    "resource_infos": [
    {
    "owner": {
    "id": "1516563360",
    "type": "User"
    },
    "resources": {
    "universe": {
    "ids": ["3828411582"]
    }
    }
    }
    ]
    }
  4. Ứng dụng của bạn bây giờ có thể gửi tin nhắn đến bất kỳ trải nghiệm nào mà người dùng đã cho phép.Khi gửi yêu cầu, bao gồm token truy cập trong tiêu đề xác nhận và universeId và chủ đề trong URL yêu cầu theo định dạng sau:

    Yêu cầu ví dụ

    curl --location --request POST 'https://apis.roblox.com/cloud/v2/universes/{universe}:publishMessage' \
    --header 'Authorization: Bearer <access_token>' \
    --header 'Content-Type: application/json' \
    --data-raw '{"topic": "some-topic","message":"message to publish"}'