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:
Utwórz klucz API na Panelu twórcy. Upewnij się, że wykonujesz następujące ustawienia:
- Dodaj usługi wiadomości do dostępu.
- Dodaj operację Publish do swojego wybranego doświadczenia.
Zdobądź identyfikator uniwersum , identyfikator doświadczenia, do którego chcesz wysłać swoje wiadomości.
Przejdź do Panelu twórcy.
Znajdź doświadczenie, do którego chcesz opublikować swoje wiadomości.
Kliknij przycisk ⋯ na miniaturze celu, aby wyświetlić listę opcji, a następnie wybierz Kopiuj ID wszechświata .
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ścicurl \--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"}'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:
Gdy rejestrujesz swoją aplikację , pod Uprawnieniami , wybierz zakres usługi wiadomości uniwersalnej:publish .
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Żą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 zapiscurl --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"]}}}]}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 zapiscurl --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"}'