PolicyService

Pokaż przestarzałe

*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.

Brak możliwości tworzenia
Usługa
Bez replikacji

PolicyService pomaga ci zapytać o zgodność z polityką informacji dotyczące graczy na całym świecie w zależności od przedziału wiekowego, lokalizacji i wpisywaćplatformy.

Podsumowanie

Metody

Właściwości

Metody

CanViewBrandProjectAsync

Wynik

Określa, czy użytkownik może zobaczyć zasoby projektu marki w twoim doświadczeniu.Ta metoda pozwala pracować z markami, aby wyświetlać tylko komercyjne zasoby dla zgodnych z marką odbiorców.

Aby użyć CanViewBrandProjectAsync, musisz użyć ID projektu marki dostarczonego przez Roblox. Aby poprosić o ID projektu marki, skontaktuj się z nami .

Musisz wywołać tę metodę na stronie serwera w skrypcie i owinąć ją w pcall().

Parametry

player: Player

Przedmiot Player, do którego próbujesz pokazać projekt marki.

Wartość domyślna: ""
brandProjectId: string

ID projektu marki dostarczone przez Roblox. Reprezentuje wszystkie zasoby związane z projektem marki.

Wartość domyślna: ""

Zwroty

Czy projekt marki może być pokazany konkretnemu użytkownikowi, czy nie.

Przykłady kodu

You must call CanViewBrandProjectAsync from the server-side and then fire an event on the client. Calling this method from the client-side returns an error.

Server-side code sample

-- In ServerScriptService
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PolicyService = game:GetService("PolicyService")
-- Pre-created RemoteEvent in ReplicatedStorage
local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent")
local brandedAsset = ReplicatedStorage:WaitForChild("BrandedAsset")
local defaultAsset = Instance.new("Part")
Players.PlayerAdded:Connect(function(player)
-- PolicyService:CanViewBrandProjectAsync can only be called from the Server
local success, canView = pcall(function()
return PolicyService:CanViewBrandProjectAsync(player, "BRP-0123456789")
end)
if success and canView then
RemoteEvent:FireClient(player, brandedAsset)
else
RemoteEvent:FireClient(player, defaultAsset)
end
end)
Client-side code sample

-- In StarterPlayerScripts
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Pre-created RemoteEvent in ReplicatedStorage
local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent")
RemoteEvent.OnClientEvent:Connect(function(partToLoad)
local clonedPart = partToLoad:Clone()
clonedPart.Parent = workspace
end)

GetPolicyInfoForPlayerAsync

Wynik

Zwraca informacje o polityce dotyczące gracza na podstawie lokalizacji geograficznej, grupawiekowej i platforma. Struktura powrotnego słownika wygląda następująco:


<th>Typ</th>
<th>Wymagane dla</th>
<th>Opis</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>AreAds allowedane są reklamy</code></td>
<td>Booleanowy</td>
<td>Dowolne doświadczenie, które obejmuje <a href="/production/monetization/immersive-ads">reklamy wciągające</a>.</td>
<td>Gdy <code>prawda</code>, gracz może zobaczyć wciągające reklamy w ramach doświadczenia.</td>
</tr>
<tr>
<td><code>ArePaidRandomItemsOgraniczone</code></td>
<td>Booleanowy</td>
<td>Dowolne doświadczenie, które ma płatne losowe przedmioty.</td>
<td>Gdy <code>prawda</code>, gracz nie może <b>interakcjonować</b> z płatnymi generatorami losowych przedmiotów za pośrednictwem waluty w doświadczeniu kupionej za Robux lub bezpośrednio za pomocą Robux.</td>
</tr>
<tr>
<td><code>Dozwolone odnośniki zewnętrzne</code></td>
<td>Zbiór</td>
<td>Dowolne doświadczenie, które odnosi się do zewnętrznych linków.</td>
<td>Lista odnośników zewnętrznych, takich jak linki do mediów społecznościowych, uchwyty lub ikony, które gracz może zobaczyć.Możliwe wartości obejmują <code>"Discord"</code> , <code>"Facebook"</code> , <code>"Twitch"</code> , <code>"YouTube"</code> , <code>"X"</code> , <code>"GitHub"</code> , i <code>"Guilded"</code>.</td>
</tr>
<tr>
<td><code>Czy udostępnianie treści jest dozwolone</code></td>
<td>Booleanowy</td>
<td>Dowolne doświadczenie, które pozwala użytkownikom na dzielenie się treściami poza platforma.</td>
<td>Gdy <code>prawda</code>, gracz ma możliwość udostępniania treści za pomocą interfejsów API, które otwierają zewnętrzne przepływy udostępniania, takie jak <code>Class.CaptureService:PromptShareCapture()|PromptShareCapture()</code>.</td>
</tr>
<tr>
<td><code>Czy kwalifikuje się do zakupu subskrypcji</code></td>
<td>Booleanowy</td>
<td>Dowolne doświadczenie, które chce sprzedawać subskrypcje.</td>
<td>Gdy <code>prawda</code>, gracz ma prawo kupować subskrypcje w ramach doświadczenia.</td>
</tr>
<tr>
<td><code>Czy IsPaidItemTrading jest dozwolony</code></td>
<td>Booleanowy</td>
<td>Dowolne doświadczenie, które pozwala użytkownikom kupować wirtualne przedmioty, którymi mogą handlować z innymi graczami.</td>
<td>Gdy <code>prawda</code>, gracz może wymieniać wirtualne przedmioty, które kupił za walutę w doświadczeniu lub Robux.</td>
</tr>
<tr>
<td><code>Jest przedmiotem polityki wobec Chin</code></td>
<td>Booleanowy</td>
<td>Dowolne doświadczenie, które jest dostępne w Chinach.</td>
<td>Gdy <code>prawda</code>, doświadczenie powinno egzekwować zmiany zgodności. Zobacz <a href="https://devforum.roblox.com/t/new-programs-available-roblox-china-licensed-to-operate/1023361">ten post na forum</a> dla więcej informacji.</td>
</tr>
</tbody>
Nazwa
Wyjątki

Podobnie jak każde wezwanie asynowe, ta metoda musi być owinięta w pcall() i odpowiednio obsługiwana błądami.Pełna lista możliwych komunikatów o błędach i ich powodów to:


<th>Powód</th>
</tr>
</thead>
<tbody>
<tr>
<td>Instancja nie była graczem</td>
<td>Parametr <code>gracz</code> nie jest instancją instancja.Player.</td>
</tr>
<tr>
<td>Gracze nie znaleziono</td>
<td>Wewnętrzny błąd, w którym brakuje obiektu <code>Class.Players</code>.</td>
</tr>
<tr>
<td>Ta metoda nie może być wywołana na klientzie dla nie-lokalnego gracza</td>
<td>Ta metoda nie może być wywołana na klientzie dla nie-lokalnej klasy <code>Class.Player</code>.</td>
</tr>
<tr>
<td>GetPolicyInfoForPlayerAsync jest nazywany za dużo razy</td>
<td>Wewnętrzny błąd, który <code>GetPolicyInfoForPlayerAsync()</code> jest wzywany ponad 100 razy (obecne ustawienie) przed wsteczodpowiedzi HTTP.</td>
</tr>
</tbody>
Wiadomość

Zobacz także LocalizationService:GetCountryRegionForPlayerAsync(), który zwraca strunę kodu kraju/regionu zgodnie z lokalizacją IP klienta gracza.

Parametry

player: Instance

The Player to uzyskać informacje o polityce.

Wartość domyślna: ""

Zwroty

Słownik zawierający informacje o informacjach o polityce żądanego gracza; patrz powyżej dla struktury słownika.

Przykłady kodu

This code sample gets policy information for the local player and warns if they cannot interact with paid random item generators.

Getting Policy Information for a Player

local PolicyService = game:GetService("PolicyService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local success, result = pcall(function()
return PolicyService:GetPolicyInfoForPlayerAsync(player)
end)
if not success then
warn("PolicyService error: " .. result)
elseif result.ArePaidRandomItemsRestricted then
warn("Player cannot interact with paid random item generators")
end

Zdarzenia