PolicyService
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
PolicyService ajuda você a consultar informações sobre conformidade com a política para jogadores ao redor do mundo com base na faixa etária, localização e digitarde plataforma.
Resumo
Métodos
Determina se um usuário pode ver recursos de projeto da marca dentro da sua experiência.
Retorna informações de política de retorno sobre um jogador com base em geolocalização, grupo etário e plataforma.
Propriedades
Métodos
CanViewBrandProjectAsync
Determina se um usuário pode ver recursos de projeto da marca dentro da sua experiência.Este método permite que você trabalhe com marcas para mostrar apenas recursos comerciais a audiências compatíveis com as marcas.
Para usar CanViewBrandProjectAsync, você deve usar um ID de projeto de marca fornecido pelo Roblox. Para solicitar um ID de projeto de marca, entre em contato conosco .
Você deve chamar este método em um script do lado do servidor e envolvê-lo em um pcall() .
Parâmetros
O objeto Player que você está tentando mostrar ao projeto da marca.
O ID do projeto de marca fornecido pela Roblox. Representa todos os recursos associados a um projeto de marca.
Devolução
Se o projeto da marca pode ou não ser mostrado ao usuário específico.
Amostras de código
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.
-- 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)
-- 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
Retorna informações de política sobre um jogador com base em geolocalização, grupo etário e plataforma. A estrutura do dicionário retornado é a seguinte:
<th>Tipo</th><th>Requerido para</th><th>Descrição</th></tr></thead><tbody><tr><td><code>AreAdsAllowed</code></td><td>Booleano</td><td>Qualquer experiência que inclua <a href="../../../production/monetization/immersive-ads.md">anúncios imersivos</a>.</td><td>Quando <code>verdade</code>, o jogador pode ver anúncios imersivos dentro de uma experiência.</td></tr><tr><td><code>ArePaidRandomItemsRestricted</code></td><td>Booleano</td><td>Qualquer experiência que tenha itens aleatórios pagos.</td><td>Quando <code>verdade</code>, o jogador pode <b>não</b> interagir com geradores de itens aleatórios pagos, via moeda na experiência comprada com Robux ou Robux diretamente.</td></tr><tr><td><code>Permitidas Referências de Link Externo</code></td><td>Matriz</td><td>Qualquer experiência que referencie links externos.</td><td>Uma lista de referências de links externos, como links de mídia social, alças ou iconografia que um jogador é permitido ver.Os valores possíveis incluem <code>"Discord"</code> , <code>"Facebook"</code> , <code>"Twitch"</code> , <code>"YouTube"</code> , <code>"X"</code> , <code>"GitHub"</code> e <code>"Guilded"</code>.</td></tr><tr><td><code>IsContentSharingAllowed</code></td><td>Booleano</td><td>Qualquer experiência que permita que os usuários compartilhem conteúdo fora da plataforma.</td><td>Quando <code>verdade</code>, o jogador é permitido compartilhar conteúdo usando APIs que abrem fluxos de compartilhamento externo, como <code>Class.CaptureService:PromptShareCapture()|PromptShareCapture()</code>.</td></tr><tr><td><code>Tem Direito de Comprar Subscrição</code></td><td>Booleano</td><td>Qualquer experiência que queira vender subscrições.</td><td>Quando <code>verdade</code>, o jogador tem direito de comprar assinaturas dentro de uma experiência.</td></tr><tr><td><code>IsPaidItemTradingAllowed</code></td><td>Booleano</td><td>Qualquer experiência que permita que os usuários comprem itens virtuais que possam trocar com outros jogadores.</td><td>Quando <code>verdade</code>, o jogador pode trocar itens virtuais que compraram com moeda da experiência ou Robux.</td></tr><tr><td><code>EstáSujeito às Políticas da China</code></td><td>Booleano</td><td>Qualquer experiência que está disponível na China.</td><td>Quando <code>verdade</code>, uma experiência deve impor mudanças de conformidade. Veja <a href="https://devforum.roblox.com/t/new-programs-available-roblox-china-licensed-to-operate/1023361">esta postagem no fórum</a> para mais informações.</td></tr></tbody>
Qual o nome |
---|
Exceções
Como qualquer chamada assíncrona, este método precisa ser embalado em pcall() e lidado com erros corretamente.Uma lista completa de mensagens de erro possíveis e suas razões é:
<th>Motivo</th></tr></thead><tbody><tr><td>Instância não era um jogador</td><td>O parâmetro <code>jogador</code> não é uma instância <code>Class.Player</code>.</td></tr><tr><td>Jogadores não encontrados</td><td>Erro interno que o objeto <code>Class.Players</code> está faltando.</td></tr><tr><td>Este método não pode ser chamado no cliente para um jogador não local</td><td>Este método não pode ser chamado no cliente para uma classe não local <code>Class.Player</code>.</td></tr><tr><td>GetPolicyInfoForPlayerAsync é chamado muitas vezes</td><td>Erro interno que <code>GetPolicyInfoForPlayerAsync()</code> é chamado mais de 100 (configuração atual) vezes antes que uma resposta HTTP volte.</td></tr></tbody>
Mensagem |
---|
Veja também LocalizationService:GetCountryRegionForPlayerAsync() que retorna uma string de código de país/região de acordo com a localização geográfica do IP do jogador.
Parâmetros
Devolução
Um dicionário que contém informações sobre a informação de política do jogador solicitado; veja acima para a estrutura do dicionário.
Amostras de código
This code sample gets policy information for the local player and warns if they cannot interact with paid random item generators.
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