Mesajlaşma kullanım kılavuzu

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Mesajlaşma Hizmeti API ı, deneyiminizin sunucuları ve istemcileri arasında iletişim kurmanıza izin veren MessagingService 'un Açık Bulut eşdeğeri.Motor API'si, mesajları yayınlamak için Studio'da sadece manuel olarak kod yazmanıza ve güncellemenize izin verir, ancak Açık Bulut API, operasyon akışlarınızı otomatikleştirmek ve geliştirmek için dışarıdan canlı sunuculara mesaj göndermenize izin verir.

Kullanım

Mesajlaşma Hizmeti API ile arasında çapraz sunucu iletişimini destekleyerek inşa edebileceğiniz birçok yararlı araç var, örneğin:

  • Duyuru Portalları : Bir web portalı, deneyiminizdeki sunucularda tüm kullanıcılara duyurular göndermeyi desteklemek için yararlı olabilir, örneğin bir sonraki etkinliği, bir güncellemeyi ve bir yarışmanın kazananını duyurmak.Portalda, bir mesajı düzenleyebilir ve API'yi tüm kullanıcılar veya seçili kullanıcılar için göndermek için bir düğmeye tıklayabilirsiniz.

  • Moderasyon Sistemi : Bir moderasyon sistemi deneyiminizi güvenli ve güvenli tutmaya yardımcı olabilir.Uygunsuz davranışlarla bir kullanıcıyı tespit ettiğinizde, deneyim sunucusunu uyararak veya belirli kullanıcıyı yasaklayarak uyarılmak veya yasaklanmak için bir mesaj yayınlayabilirsiniz.Kullanıcı hesaplarını yeniden katılmalarını engelleyen bir bloke listesine eklemek için moderasyon sisteminde veri depoları da kullanabilirsiniz.

  • LiveOps Panosu : LiveOps panoları, bir Cadılar Bayramı partisi gibi canlı etkinlikleri yönetmek için yararlı araçlardır.Panoda, bir olayı önceden kodlayabilir, olay mesajlarını güncelleyebilir, olayı hazır olduğunda tetikleyebilir ve deneyimin kodunu güncellemeden özel bir taç gibi özel kullanıcılara ödül verebilirsiniz, deneyimin kodunu güncellemeden.

Sınırlar

SınırlandırmaAçıklama
OranıRoblox, mesaj isteklerini 50 + (5 * number_of_players_in_experience) 'de sınırlandırır.Örneğin, 20 oyuncu ile bir deneyim, dakika başına 150 mesaj isteğinde sınırlandırmaya başlar.
Konu boyutu80 karakter
Mesaj boyutu1,024 karakter (1 KB)

Mesajlaşma için bir konu ayarlayın

Deneyimin canlı sunucularına bir mesaj yayınlamadan önce, çok sayıda sunucudan erişilebilen özelleştirilmiş bir mesaj kanalı olan bir konu ayarlamanız gerekir.Bir konu tanımladıktan sonra, gelen mesajları almak için kullanıcıları konuya abone edersiniz.

Şu anda, sadece Studio'da bir konu tanımlayabilir ve Luau API'yi MessagingService:SubscribeAsync().Aşağıdaki kod örneği, deneyime katılan herhangi bir kullanıcıyı 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)
-- Konu tanımlayın ve abone olun
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- Oyuncu atasözü değişikliği üzerine konudan çıkış
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Canlı sunuculara mesajlar yayınla

Bir konu ayarladıktan sonra sonra deneyimin canlı sunucularına bir mesaj yayınlayın:

  1. Bir API anahtarı oluşturunYaratıcı Panosu üzerinde ve güvenli bir yere kopyalayın. Aşağıdaki ayarları yaptığınızdan emin olun:

    1. mesajlaşma hizmeti Erişim İzinlerine ekleyin.
    2. Bir deneyim seçin ve evren-iletişim-hizmeti:yayınla operasyonunu ekleyin.
  2. Deneyiminiz için Evren ID'si alın:

    1. Navigate to the Yaratıcı Panosuna.

    2. Mesajlarını yayınlamak istediğin deneyimi bul.

    3. Bir deneyimin küçük küçük resimüzerine gelin, düğmesine tıklayın ve Evren ID'sini kopyala seçin.

  3. Bu örnekte olduğu gibi, API anahtarı ve evreni bir POST talepekleyin:

    Mesaj Yayınlama İçin Örnek İstek

    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. Mesajı yayınlamak için HTTP isteğini gönderin.

İletişim Hizmeti API'sini OAuth 2.0 uygulamalarına ekleyin

Kullanıcılarınızın kendi canlı sunucularına mesaj yayınlamasına izin veren OAuth 2.0 uygulamaları oluşturabilirsiniz.

Uygulamanız için Mesajlaşma Hizmeti API'sini kullanmak ve kullanıcılarınızdan izinler istemek için aşağıdaki ayarları yapın:

  1. Uygulamanızı kaydettikten sonra, İzinler altında, evren mesajlaşma hizmeti:yayınla alanını seçin.

  2. Yetkilendirme akışını uygularken , kullanıcıları uygulamanıza geri yönlendiren yetkilendirme URL'sinin parametresine dahil edin, örneğin aşağıdaki gibi:


    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. Kullanıcının mesajlarını yayınlamak istediği deneyime erişim isteği gönderin universeId .Uygulamanız, erişim jetonu, müşteri kimliği ve gizli veya , izin akışınızın uygulandığına bağlı olarak, token kaynak uç noktasına bir istek gönderebilir:

    Örnek İstek

    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>'

    Bu uç nokta, aşağıdaki örnek yanıt gibi bir liste döndürür:

    Örnek Yanıt

    {
    "resource_infos": [
    {
    "owner": {
    "id": "1516563360",
    "type": "User"
    },
    "resources": {
    "universe": {
    "ids": ["3828411582"]
    }
    }
    }
    ]
    }
  4. Uygulamanız artık bir kullanıcının izin verdiği herhangi bir deneyime mesaj gönderebilir.talepgönderirken, erişim jetonunu yetkilendirme başlığına ve universeId ve konuyu istek URI'sine aşağıdaki biçimde dahil edin:

    Örnek İstek

    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"}'