Przewodnik użytkowania 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.

Interfejs usługi wysyłania wiadomości API jest odpowiednikiem otwartej chmury dla silnika MessagingService, który pozwala na komunikację między serwerami i klientami doświadczenia.API silnika pozwala tylko na pisanie i aktualizowanie skryptów ręcznie w Studio do publikowania wiadomości, ale API Open Cloud pozwala wysyłać wiadomości na żywe serwery z zewnętrznych narzędzi, aby zautomatyzować i ulepszyć przepływy pracy operacji.

Użycie

Istnieje kilka przydatnych narzędzi, które możesz zbudować poprzez wsparcie komunikacji międzyserwerowej za pomocą interfejsu API usługi wysyłania wiadomości, w tym:

  • Portale ogłoszeń : Portal internetowy może być pomocny w wspieraniu wysyłania ogłoszeń do wszystkich użytkowników na serwerach w twoim doświadczeniu, takich jak ogłoszenie nadchodzącego wydarzenia, aktualizacjai zwycięzcy konkursu.Na portalu możesz edytować wiadomość i kliknąć przycisk, który wzywa API do wysłania wiadomości dla wszystkich użytkowników lub wybranych użytkowników.

  • System moderacji : System moderacji może pomóc utrzymać Twoje doświadczenie bezpieczne i bezpieczne.Podczas wykrywania użytkownika o nieodpowiednim zachowaniu możesz opublikować wiadomość, aby uruchomić serwer doświadczeń, aby ostrzec lub zbanować określonego użytkownika.Możesz również używać magazynów danych w systemie moderacji, aby dodać konta użytkownika do listy blokowanych, które uniemożliwiają ponowne dołączenie.

  • Panel główny LiveOps : Panel główny LiveOps to przydatne narzędzia do zarządzania wydarzeniami na żywo, takimi jak impreza Halloween.Na pulpicie nawigacyjnym możesz przedkodować wydarzenie, zaktualizować wiadomości o wydarzeniu, uruchomić wydarzenie, gdy będzie gotowe, i nagrodzić wybranych użytkowników specjalnymi przedmiotami, takimi jak wirtualna korona, bez aktualizowania żadnego kodu doświadczenia.

Greny

OgraniczenieOpis
SzybkośćRoblox ogranicza żądania wiadomości do .Na przykład doświadczenie z 20 graczami zaczyna się kurczyć przy 150 żądaniach wiadomości na minutę.
Rozmiar tematu80 znaków
Rozmiar wiadomości1,024 znaków (1 KB)

Ustaw temat do wysyłania wiadomości

Zanim będziesz mógł opublikować wiadomość na żywych serwerach swojego doświadczenia, musisz skonfigurować tekst , który jest niestandardowym kanałem wiadomości, który jest dostępny z wielu serwerów.Po zdefiniowaniu tematu subskrybujesz użytkowników tematu, aby otrzymywać otrzymane wiadomości.

Obecnie możesz tylko zdefiniować temat w Studio i użyć API Luau MessagingService:SubscribeAsync(), aby zapisać użytkowników do niego.Poniższy przykład kodu subskrybuje każdego użytkownika do tematu, gdy dołącza 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)
-- Określ i subskrybuj temat
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- Odsubskrybuj temat po zmianie przodków gracza
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Opublikuj wiadomości na żywych serwerach

Po skonfiguracji tematu opublikuj wiadomość na żywych serwerach swojego doświadczenia:

  1. Stwórz klucz API na panelu twórcy i skopiuj go gdzieś bezpiecznie. Upewnij się, że wykonasz następujące ustawienia:

    1. Dodaj usługę wysyłania wiadomości do uprawnień dostępu .
    2. Wybierz doświadczenie i dodaj operację uniwersalnego serwisu wysyłania wiadomości:publikuj .
  2. Zdobądź ID wszechświata dla swojego doświadczenia:

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

    2. Najedź kursorem na miniaturę doświadczenia, kliknij przycisk i wybierz Kopiuj ID wszechświata .

  3. Dodaj klucz API i wszechświat do prośbaPOST, tak jak w tym przykładzie:

    Przykład prośby o opublikowanie wiadomości

    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. Wyślij żądanie HTTP, aby opublikować wiadomość.

Dodaj usługę wysyłania wiadomości do aplikacji OAuth 2.0

Możesz stworzyć aplikacje OAuth 2.0, które pozwalają twoim użytkownikom publikować wiadomości na własnych żywych serwerach.

Aby korzystać z interfejsu programowania usługi wysyłania wiadomości dla aplikacji i żądać uprawnień od użytkowników, wykonaj następujące ustawienia:

  1. Gdy rejestrujesz aplikację, w ramach uprawnień , wybierz zakres usługi wysyłania wiadomości międzywymiarowych:publikuj .

  2. Gdy implementujesz przepływ autoryzacji, uwzględnij universe-messaging-service:publish w parametrze scope adresu URL autoryzacji, który przekieruje użytkowników z powrotem do Twojej aplikacji, tak jak w następnym przykładzie:


    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. Żądaj dostępu do universeId doświadczenia, do którego użytkownik chce opublikować swoje wiadomości.Aplikacja może wysłać prośbę do punktu końcowego zasobów tokenowych z tokenem dostępu, ID klienta i sekretem lub , w zależności od twojej implementacji przepływu autoryzacji , jako parametry prośby, aby uzyskać listę doświadczeń, które użytkownik przyznał zgodę:

    Przykładowe żądanie

    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 punkt końcowy zwraca listę universeIds taką jak następująca odpowiedź przykładu:

    Przykładowa odpowiedź

    {
    "resource_infos": [
    {
    "owner": {
    "id": "1516563360",
    "type": "User"
    },
    "resources": {
    "universe": {
    "ids": ["3828411582"]
    }
    }
    }
    ]
    }
  4. Twoja aplikacja może teraz wysyłać wiadomości do każdego doświadczenia, które użytkownik przyznał uprawnienie.Wysyłając prośba, uwzględnij token dostępu w nagłówku autoryzacji i universeId i temat w adresie URL żądania w następującym formacie:

    Przykładowe żądanie

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