Mesajlaşma Hizmeti API , Lua MessagingService ile aynı Open Cloud eşdeğeridir, böylece deneyiminizin sunucu veya istemci instansları arasında iletişim kurmanızı sağlar. Lua API sadece bir mesaj göndermek ve güncellemeyi manuel olarak Studio'da yapabilir,
Kullanım
Mesajlaşma Hizmetleri API'si ile sunucu arası iletişimi destekleyerek inşa edebileceğiniz birkaç faydalı araç var, bunlar arasında:
Duyurular Portalları : Bir web portal, deneyiminizdeki tüm kullanıcılar için sunuculardakiki kullanıcılara duyuruları göndermeyi desteklemek için yararlı olabilir, bir etkinliği duyurmak, bir güncellemeyi veya bir yarışmanın kazananını duyurmak gibi. Portalda, bir mesajı düzenleyebilir ve API'yi her kullanı
Moderasyon Sistemi : Bir moderasyon sistemi, deneyiminizi güvenli ve güvenli tutmak için yardımcı olabilir. Bir kullanıcıyı yanlış davranışla tespit ettiğinizde, deneyim sunucusunu uyarıya veya yasaklamak için yayınlayabilirsiniz bir mesaj. Ayrıca, veri depolarını desteklemek moderasyon sistem
LiveOps Dashboard : LiveOps Dashboard, bir Cadılar Bayramı partisi gibi canlı etkinlikleri yönetmek için kullanışlı bir araçtır. LiveOps dashboard'ında, bir etkinliği önceden kodlayabilirsiniz, bir etkinliğin mesajlarını güncelleyebilirsiniz ve bir etkinliği hazır olduğunda gerekirse ödüller verebilirsiniz. Kaynak Kodu
Sınırlar
Sınır | Açıklama --- | --- Oranına | Roblox sınırlandırma mesaj istekleri her dakika 50 + 5 n per minute, n nerede deniyor. Örneğin, 20 oyuncu ile deneyimin
Mesajlar için bir Konu ayarlanması
Tüm deneyiminizin canlı sunucularına bir mesaj yayınlamadan önce, bir konu oluşturmalısınız, ki bu, birden fazla sunucudan erişilebilen özel bir mesaj kanalıdır. Bir konu oluşturduktan sonra, gelen mesajları almak için kullanıcıları konu'a abone etmeniz gerekir.
Şu anda, Studio'da sadece bir konu tanımlayabilir ve Lua MessagingService:SubscribeAsync() kullanarak kullanıcıları aşırı yüklemeye abone etmek için kullanılır. Aşağıdaki kod örneği, kullanıcıları deneyime katılırken herhangi bir konuya abone eder:
Set up and Subscribe Users to a Topic
local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- Başlığı tanımla ve abone ol
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- Oyuncu kökeni değişikliğinden abone olmayı kaldır
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Canlı Sunuculara Mesajlarınızı Paylaşma
Bir başlık oluşturduktan sonra tüm deneyiminizin canlı sunucularına bir mesaj gönderebilirsiniz, şu adımları izleyerek:
Bir API anahtarı oluşturun Creator Dashboard'da. Make sure you perform the following settings:
- mesaj hizmeti を erişim izinlerine ekleyin.
- Seçili deneyiminize Paylaş operasyonunu ekleyin.
Mesajlarınızı göndermek istediğiniz deneyimin kimliğini alın Evren ID , mesajlarınızı göndereceğiniz deneyimin kimliğini alın.
Navigate to the Yaratıcı Dashboard .
Mesajlarınızı yayınlamak istediğiniz deneyimi bulun.
Hedef deneyiminin minyatüründeki ⋯ butonuna tıklayarak bir liste göster, sonra Kaynak Kodu Kopyala seç.
API anahtarını x-api-key ile bir POST isteğinin API'sine şu örnek gibi ekleyin:
Bir Mesajı Yayınlamak İçin Örnek İstekcurl \--location \--request POST \'https://apis.roblox.com/messaging-service/v1/universes/{universeId}/topics/{topic}' \-H 'x-api-key: abc...' \-H 'Content-Type: application/json' \--data-raw '{"message":"message to publish"}'Mesajı göndermek için API'yi çağır.
Mesajlaşma Hizmeti API'sini OAuth 2.0 Uygulamalarına Ekleme
Mesajları OAuth 2.0 uygulamalarını oluşturarak Messaging Service API'sini destekleyerek kullanıcılarınızın OAuth 2.0 uygulamanızı aracılığıyla canlı sunucularda mesajları yayınlamasına izin verebilirsiniz.
Uygulamanız için Mesajlaşma Hizmeti API'sini kullanmak ve kullanıcılarınızın izinlerini istemek için aşağıdaki ayarları yapın:
Uygulamanızı kaydederken İzinler altında evren mesajlaşma hizmeti:publish kapsayıcıyı seçin.
kimlik doğrulama akışını uygularken, aşağıdaki örnek gibi, kullanıcıları uygulamanıza yönlendiren universe-messaging-service:publish``scope kullanın.
https://www.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=6789Kullanıcının mesajlarını yayınladığı deneyimin universeId ına erişim isteğini gönderir. Uygulamanız, erişim jetonu, klişe ID ve gizli veya POST gibi istek paramet
Örnek İstekcurl --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>'Bu nokta aşağıdaki örnek yanıtı gibi bir universeIds listesi döndürür:
Örnek Yanıt{"resource_infos": [{"owner": {"id": "1516563360","type": "User"},"resources": {"universe": {"ids": ["3828411582"]}}}]}Uygulamanız artık kullanıcının izin verdiği herhangi bir deneyime mesaj gönderebilir. İstek gönderirken, talepgönderme metnindeki erişim jetonunu ve universeId ve konu içeren istek URL'sini aşağıdaki biçimde gösterin:
Örnek İstekcurl --location --request POST 'https://apis.roblox.com/messaging-service/v1/universes/{universeId}/topics/{topic}' \--header 'Authorization: Bearer <access_token>' \--header 'Content-Type: application/json' \--data-raw '{"message":"message to publish"}'