GG.chatbot
FluxoBlocosLógica

Bloco Script

O bloco "Script" executa código JavaScript.

Este bloco não permite criar um bloco visual personalizado.
Bloco de código

Dentro de scripts, as variáveis não são interpoladas: elas são avaliadas. Trate-as como se fossem variáveis JavaScript de verdade.

Escreva console.log({{Minha variável}}) em vez de console.log("{{Minha variável}}").

Função setVariable

Se você quer definir o valor de uma variável com JavaScript, o bloco Variável costuma ser mais adequado.

Mas, se preferir definir variáveis dentro de um bloco Script, use a função setVariable:

if({{My variable}} === 'foo') {
  setVariable('My variable', 'bar')
} else {
  setVariable('My variable', 'other')
}

A função setVariable só existe em scripts executados no servidor, então não funciona com a opção Executar no cliente? marcada.

Limitações dos scripts executados no servidor

Como o script roda em um ambiente isolado e protegido, há algumas limitações.

  • Funções globais como console.log, setTimeout e setInterval não estão disponíveis.

  • A função fetch se comporta de forma um pouco diferente da nativa: basta pular a parte do await response.text() ou await response.json().

    // ❌ This throws an error
    const response = await fetch('https://jsonplaceholder.typicode.com/todos/1')
    const data = await response.text()
    
    // ✅ This works
    const data = await fetch('https://jsonplaceholder.typicode.com/todos/1')

    A resposta é sempre um string, mesmo quando a requisição devolve um objeto JSON. Se você sabe que a resposta é JSON, converta com JSON.parse(response).

    // ❌ This throws an error
    const response = await fetch('https://jsonplaceholder.typicode.com/todos/1')
    const data = await response.json()
    
    // ✅ This works
    const response = await fetch('https://jsonplaceholder.typicode.com/todos/1')
    const data = JSON.parse(response)
  • Não é possível usar import ou require para carregar bibliotecas externas.

  • Você não tem acesso a APIs do navegador, como window, document ou localStorage. Se precisar delas, marque a opção Executar no cliente? para que o script rode no navegador do usuário.

Exemplos

Recarregar a página

window.location.reload()

Redirecionar quando uma variável tem determinado valor

if({{Category}} === 'qualified') {
  window.location.href = 'https://my-site.com'
}

Precisa fazer algo e não sabe como? Entre no servidor do Discord e peça ajuda!

On this page