Layanan Pesan API adalah Open Cloud sebanding dengan Engine MessagingService, yang memungkinkan Anda berkomunikasi di antara server dan klien pengalaman Anda.API Mesin hanya memungkinkan Anda menulis dan memperbarui skrip secara manual di Studio untuk mempublikasikan pesan, tetapi API Open Cloud memungkinkan Anda mengirim pesan ke server langsung dari alat eksternal untuk mengotomatisasi dan meningkatkan alur kerja operasi Anda.
Penggunaan
Ada beberapa alat berguna yang dapat Anda buat dengan mendukung komunikasi antar server dengan API Layanan Pesan, termasuk:
Portal Pengumuman : Portal web dapat membantu mendukung mengirim pengumuman ke semua pengguna di seluruh server dalam pengalaman Anda, seperti mengumumkan acara mendatang, update, dan pemenang untuk kompetisi.Di portal, Anda dapat mengedit pesan dan klik tombol yang memanggil API untuk mengirim pesan ke semua pengguna atau pengguna yang dipilih.
Sistem Moderasi : Sistem moderasi dapat membantu menjaga pengalaman Anda aman dan terjamin.Saat mendeteksi pengguna dengan perilaku tidak pantas, Anda dapat mempublikasikan pesan untuk menyebabkan server pengalaman memperingatkan atau melarang pengguna tertentu.Anda juga dapat menggunakan toko data di sistem moderasi untuk menambahkan akun pengguna ke daftar blokir yang mencegah mereka bergabung kembali.
Dashboard LiveOps : Dashboard LiveOps berguna untuk mengelola acara langsung, seperti pesta Halloween.Di dasbor, Anda dapat mengkodekan acara sebelumnya, memperbarui pesan acara, mengaktifkan acara saat siap, dan menghadiahi pengguna yang dipilih dengan item khusus seperti mahkota virtual tanpa memperbarui kode pengalaman.
Batasan
Batasi | Deskripsi |
---|---|
Tingkat | Roblox membatasi permintaan pesan pada 50 + (5 * number_of_players_in_experience) .Sebagai contoh, pengalaman dengan 20 pemain mulai melambat pada 150 permintaan pesan per menit. |
Ukuran topik | 80 karakter |
Ukuran pesan | 1,024 karakter (1 KB) |
Buat topik untuk pesanan
Sebelum Anda dapat menerbitkan pesan ke server langsung pengalaman Anda, Anda harus mengatur topik , yang merupakan saluran pesan khusus yang dapat diakses dari beberapa server.Setelah menentukan topik, Anda berlangganan pengguna ke topik untuk menerima pesan masuk Anda.
Saat ini, Anda hanya dapat mendefinisikan topik di Studio dan menggunakan API Luau MessagingService:SubscribeAsync() untuk berlangganan pengguna kepadanya.Contoh kode berikut berlangganan pengguna ke topik saat mereka bergabung dengan pengalaman:
Set up and Subscribe Users to a Topic
local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- Definisikan dan berlangganan topik
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- Berhenti berlangganan dari topik saat perubahan leluhur pemain
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Publikasikan pesan ke server langsung
Setelah menyiapkan topik, publikasikan pesan ke server langsung pengalaman Anda:
Buat kunci API di Dashboard Pencipta dan salin ke tempat yang aman. Pastikan Anda melakukan pengaturan berikut:
- Tambahkan layanan pesan ke izin akses .
- Pilih pengalaman, dan tambahkan operasi univers-messaging-service: publish .
Dapatkan ID Alam Semesta untuk pengalaman Anda:
Navigasikan ke Dashboard Pencipta.
Temukan pengalaman yang ingin Anda publikasikan pesan Anda ke.
Pasang mouse di atas thumbnail pengalaman, klik tombol ⋯ dan pilih Copy Universe ID .
Tambahkan kunci API dan alam semesta ke permintaan POST , seperti dalam contoh ini:
Contoh Permintaan untuk Mempublikasikan Pesancurl -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!"}'Kirim permintaan HTTP untuk mempublikasikan pesan.
Tambahkan Layanan Pesan API ke aplikasi OAuth 2.0
Anda dapat membuat aplikasi OAuth 2.0 yang memungkinkan pengguna Anda untuk menerbitkan pesan ke server langsung mereka.
Untuk menggunakan API Layanan Pesan untuk aplikasi Anda dan meminta izin dari pengguna Anda, lakukan pengaturan berikut:
Saat mendaftarkan aplikasi Anda , di bawah izin , pilih scope layanan pesan antar-univers:publikasikan .
Saat menerapkan aliran otorisasi, termasuk universe-messaging-service:publish dalam parameter scope URL otorisasi yang mengarahkan pengguna kembali ke aplikasi Anda, seperti contoh berikut:
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=6789Minta akses ke universeId pengalaman yang ingin pengguna publikasikan pesan mereka ke dalamnya.Aplikasi Anda dapat mengirim permintaan ke endpoint sumber daya token dengan token akses, ID klien, dan rahasia atau , tergantung pada implementasi alur otorisasi Anda, sebagai parameter permintaan untuk mendapatkan daftar pengalaman yang pengguna berikan izin:
Permintaan Contohcurl --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>'endpoint ini mengembalikan daftar universeIds seperti respons contoh berikut:
Contoh Respon{"resource_infos": [{"owner": {"id": "1516563360","type": "User"},"resources": {"universe": {"ids": ["3828411582"]}}}]}Aplikasi Anda sekarang dapat mengirim pesan ke pengalaman apa pun yang pengguna berikan izin.Saat mengirim permintaan, termasuk token akses dalam header otorisasi dan universeId dan topik dalam URI permintaan dalam format berikut:
Permintaan Contohcurl --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"}'