Przewodnik po użyciu wiadomości

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

API Służby Wysyłania Wiadomości jest odpowiednikiem Open Cloud dla Lua MessagingService, który umożliwia komunikację między serwerami lub instancjami klienta swojego doświadczenia. API Lua pozwala tylko na pisanie i aktualizowanie skryptu ręcznie w Studio do publikacji wiadomości, ale Open Cloud API pozwala na wysyłanie w

Użyj

Są kilka przydatnych narzędzi, które możesz zbudować poprzez wsparcie komunikacji między serwerami poprzez API Messaging Service, w tym:

  • Portale ogłoszeniowe : Portal web może być pomocny w poparciu wysyłania ogłoszeń do wszystkich użytkowników na serwerach w Twoim doświadczeniu, takich jak ogłoszenie nadchodzącego wydarzenia, aktualizacjai wygranego dla konkursu. Na portalu możesz edytować wiadomość i kliknąć przycisk, który wysyła wiadomość dla wszystkich użytkowników lub wybranych użyt

  • System moderacji : System moderacji może pomóc utrzymać Twoje doświadczenie bezpiecznym i bezpiecznym. Gdy wykryjesz użytkownika z nieodpowiednim zachowaniem, możesz opublikować wiadomość, aby zachęcić serwer do ostrzeżenia lub zbanowania określonego użytkownika. Możesz również wspierać przechowywanie danych w blokach listy, które zap

  • Dashboard LiveOps-u : LiveOps-u jest użytecznym narzędziem do zarządzania wydarzeniami na żywo, takimi jak impreza Halloweenowa. Na dashboardzie LiveOps możesz zapisać wydarzenie, aktualizować wiadomości o wydarzeniach i wykonać zdarzenie, gdy jest gotowe, aby nagradzić wybranych użytkowników specjalnymi przedmiotami bez aktualizowania kodu doświadczenia.

Ograniczenia

Ogranicz | Opis | --- | --- Rate | Roblox ogranicza wiadomości w wątku na 50 + 5 n na minutę, gdzie n to liczba graczy w doświadczeniu. Na przykład, doświadczenie z 20 graczami

Ustawienie tematu do wiadomości

Zanim możesz opublikować wiadomość na żywych serwerach wszystkich swoich doświadczeń, musisz ustawić kanał tematyczny, który jest dostępny z wielu serwerów. Po zdefiniowaniu tematu musisz subskrybować użytkowników na temat do otrzymywania Twoich wходяcych wiadomości.

Obecnie możesz zdefiniować tylko temat w Studio i użyć Lua MessagingService:SubscribeAsync(), aby subskrybować użytkowników do niego. Poniższy kod przykładu subskrybuje każdego użytkownika do tematu, gdy dołączają do doświadczenia:

Set up and Subscribe Users to a Topic

local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- Definiuj i subskrybuj temat
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- Odznacz się od tematu w przypadku zmiany pokolenia gracza
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Publikowanie wiadomości na żywych serwerach

Po ustawieniu tematu na żywym serwerze możesz opublikować wiadomość dla wszystkich swoich doświadczeń z żywymi serwerami za pomocą następujących kroków:

  1. Utwórz klucz API na Panelu twórcy. Upewnij się, że wykonujesz następujące ustawienia:

    1. Dodaj usługi wiadomości do dostępu.
    2. Dodaj operację Publish do swojego wybranego doświadczenia.
  2. Zdobądź identyfikator uniwersum , identyfikator doświadczenia, do którego chcesz wysłać swoje wiadomości.

    1. Przejdź do Panelu twórcy.

    2. Znajdź doświadczenie, do którego chcesz opublikować swoje wiadomości.

    3. Kliknij przycisk na miniaturze celu, aby wyświetlić listę opcji, a następnie wybierz Kopiuj ID wszechświata .

      Copy Universe ID option from Creator Dashboard
  3. Dodaj klucz API w nagłówku x-api-key w żądaniu POST do API, jak pokazano poniżej przykładu:

    Przykład prośby o publikację wiadomości

    curl \
    --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"}'
  4. Zadzwoń do API, aby wysłać wiadomość.

Dodanie API usługi wiadomości do aplikacji OAuth 2.0

Możesz stworzyć aplikacje OAuth 2.0 wspierające API Messaging Service, aby umożliwić swoim użytkownikom publikację wiadomości na żywych serwerach poprzez swoją aplikację OAuth 2.0.

Aby użyć API Messaging Service dla swojego aplikacji i prośbę o zezwolenia od swoich użytkowników, wykonaj następujące ustawienia:

  1. Gdy rejestrujesz swoją aplikację , pod Uprawnieniami , wybierz zakres usługi wiadomości uniwersalnej:publish .

  2. Gdy wdrożysz przepływ autoryzacji, włącz universe-messaging-service:publish w parametrze scope w URL autoryzacji, która przekierowuje użytkowników do twojego aplikatu, jak poniższy przykład:


    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=6789
  3. Żądaj dostępu do universeId universeId doświadczenia, do którego użytkownik chce opublikować swoje wiadomości. Twoja aplikacja może wysłać prośbę o dostęp do POST z użyciem tokenu dostępu,

    Przykładowy zapis

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

    Ten interfejs zwraca listę universeIds podobną do poniższego przykładu odpowiedzi:

    Przykładowa odpowiedź

    {
    "resource_infos": [
    {
    "owner": {
    "id": "1516563360",
    "type": "User"
    },
    "resources": {
    "universe": {
    "ids": ["3828411582"]
    }
    }
    }
    ]
    }
  4. Twoja aplikacja teraz może wysyłać wiadomości do dowolnego doświadczenia, którego użytkownik udzielił zgody. Podczas wysyłania prośbawłącz token dostępu w nagłówku autoryzacji i universeId i temat w wiadomości URL w następującej formie:

    Przykładowy zapis

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