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 Servisi API'si, oyununuzun sunucuları ve istemcileri arasında iletişim kurmanızı sağlayan Açık Bulut'un Engine MessagingService karşılığıdır. Engine API'si, mesaj yayınlamak için yalnızca Studio'da skriptleri manuel olarak yazmanızı ve güncellemenizi sağlar; ancak Açık Bulut API'si, harici araçlardan canlı sunuculara mesaj göndermenize olanak tanır ve operasyon iş akışlarınızı otomatikleştirip iyileştirir.

Kullanım

Mesajlaşma Servisi API’si ile çapraz sunucu iletişimini destekleyerek oluşturabileceğiniz çeşitli faydalı araçlar vardır, bunlar arasında:

  • Duyuru Portalları: Web portalı, oyununuzdaki tüm kullanıcılara duyuru göndermeyi desteklemek için yararlı olabilir; örneğin yaklaşan bir etkinlik, güncelleme veya bir yarışmanın kazananını duyurmak için. Portaldan bir mesajı düzenleyebilir ve mesajı tüm kullanıcılara veya belirli kullanıcılara göndermek için API'yi çağıran bir düğmeyi tıklayabilirsiniz.

  • Moderasyon Sistemi: Moderasyon sistemi oyununuzu güvenli ve emniyetli tutmaya yardımcı olabilir. Uygunsuz davranışta bulunan bir kullanıcı tespit edildiğinde, belirli kullanıcıya uyarı veya yasaklama tetiklemek için bir mesaj yayınlayabilirsiniz. Ayrıca, veri depolarını moderasyon sisteminde kullanarak kullanıcı hesaplarını yeniden katılımlarını engelleyen bir yasaklı listeye ekleyebilirsiniz.

  • Canlı Olaylar Gösterge Tablosu: CanlıOlaylar gösterge tabloları, örneğin bir Cadılar Bayramı partisi gibi canlı etkinlikleri yönetmek için faydalı araçlardır. Gösterge tablosunda bir etkinliği önceden kodlayabilir, etkinlik mesajlarını güncelleyebilir, etkinlik hazır olduğunda tetikleyebilir ve seçilen kullanıcılara oyunun kodunu güncellemeden sanal bir taç gibi özel eşyalar ödüllendirebilirsiniz.

Sınırlamalar

Mesajlaşma Servisi API'si, Engine MessagingService ile aynı sınırlamalara tabidir. Rate limit'ler her iki API arasında paylaşılmakta ve her iki API'den yapılan kullanım aynı sınırlar içinde sayılmaktadır.

SınırlamaAçıklama
Her oyun sunucusuna gönderilen mesajlar600 + 240 * (oyun sunucusundaki oyuncu sayısı) dakika başına
Konu başına alınan mesajlar(40 + 80 * sunucu sayısı) dakika başına
Bütün oyuna alınan mesajlar(400 + 200 * sunucu sayısı) dakika başına
Her oyun sunucusunda izin verilen abonelikler20 + 8 * (oyun sunucusundaki oyuncu sayısı)
Her oyun sunucusuna abonelik talepleriDakika başına 240 talep
Konu boyutu80 karakter
Mesaj boyutu1.024 karakter (1 KiB)

Mesajlaşma için bir konu oluşturun

Oyununuza canlı sunuculara bir mesaj yayını yapmadan önce, birden fazla sunucudan erişilebilen özelleştirilmiş bir mesaj kanalı olan bir konu oluşturmanız gerekir. Bir konuyu tanımladıktan sonra, gelen mesajlarınızı alabilmek için kullanıcıları konuya abone yaparsınız.

Şu anda, yalnızca Studio'da bir konu tanımlayabilir ve kullanıcıları konuya abone yapmak için Luau API MessagingService:SubscribeAsync() kullanabilirsiniz. Aşağıdaki kod örneği, bir oyuncu oyuna katıldığında onu bir konuya abone eder:

Bir Konu Oluşturun ve Kullanıcıları Abone Yapın

local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- Konuyu 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 köken değiştiğinde konudan aboneliği iptal edin
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Canlı sunuculara mesaj yayınlayın

Mesajlaşma için bir konu kurduktan sonra, oyununuzun canlı sunucularına bir mesaj yayınlayın:

  1. API anahtarı oluşturun Yaratıcı Gösterge Tablosu'nda ve güvenli bir yere kopyalayın. Aşağıdaki ayarları gerçekleştirdiğinizden emin olun:

    1. Erişim İzinlerine messaging-service ekleyin.
    2. Bir oyun seçin ve universe-messaging-service:publish işlemini ekleyin.
  2. Oyununuza ait Evrensel ID'yi alın:

    1. Mesajlarınızı yayınlamak istediğiniz oyunu bulun.

    2. Bir oyunun küçük resmi üzerine gelin, düğmesine tıklayın ve Evrensel ID'yi Kopyala seçeneğini seçin.

  3. API anahtarını ve evreni bir POST isteğine ekleyin, örnekteki gibi:

    Mesaj Yayınlamak iç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": "Merhaba, herkes!"
    }'
  4. Mesajı yayınlamak için HTTP isteğini gönderin.

Mesajlaşma Servisi API'sini OAuth 2.0 uygulamalarına ekleyin

Kullanıcılarınızın kendi canlı sunucularına mesaj göndermesine olanak tanıyan OAuth 2.0 uygulamaları oluşturabilirsiniz.

Uygulamanız için Mesajlaşma Servisi API'sini kullanmak ve kullanıcılarınızdan izin istemek için aşağıdaki ayarları gerçekleştirin:

  1. Uygulamanızı kaydederken, İzinler bölümünde universe-messaging-service:publish kapsamını seçin.

  2. yetkilendirme akışını uygularken, kullanıcıları uygulamanıza geri yönlendiren yetkilendirme URL’sinin scope parametresine universe-messaging-service:publish ekleyin, aşağıdaki örnek gibi:


    https://apis.roblox.com/oauth/v1/authorize?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 oyunun universeId'sine erişim isteyin. Uygulamanız, izin verdiği oyunların universeIds listesini almak için token resources endpoint'e erişim token'ı, istemci kimliği ve gizli anahtarı veya code challenge ile POST isteği 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ıtla universeIds listesini döner:

    Örnek Yanıt

    {
    "resource_infos": [
    {
    "owner": {
    "id": "1516563360",
    "type": "User"
    },
    "resources": {
    "universe": {
    "ids": ["3828411582"]
    }
    }
    }
    ]
    }
  4. Artık uygulamanız, kullanıcıdan izin aldığı herhangi bir oyuna mesaj gönderebilir. İsteği gönderirken, yetkilendirme başlığında erişim token'ını ve istek URI'sinde universeId ve konuyu aşağıdaki formatta 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":"yayınlanacak mesaj"}'

HTTPService ile Kullanım

Bu API, HttpService tarafından desteklenen Açık Bulut uç noktalarından biridir. Farklı oyunlar arasında mesaj yayınlamak için bir oyun içinde kullanabilirsiniz.

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.