Exemplos de integração
As três linguagens usam o mesmo endpoint e corpo JSON. Os exemplos de leitura não modificam usuários. Substitua o corpo por uma das operações acima quando implementar os eventos do RH.
JavaScript · Node.js 18+
json
// Node.js 18+; execute apenas no servidor.
const key = process.env.PSICOGES_API_KEY;
if (!key) throw new Error("Defina PSICOGES_API_KEY");
const response = await fetch("https://fizgujocdsnnvmwbrvgq.supabase.co/functions/v1/api?route=integracao", {
method: "POST",
headers: { Authorization: `Bearer ${key}`, "Content-Type": "application/json" },
body: JSON.stringify({ action: "usuarios-list", limit: 100, offset: 0 }),
});
const data = await response.json();
if (!response.ok) throw new Error(`HTTP ${response.status}: ${data.error ?? "Falha"}`);
console.log(data.usuarios);Python 3 · sem dependências
json
# Python 3, biblioteca padrão; execute apenas no servidor.
import json, os, urllib.request, urllib.error
payload = {"action": "usuarios-list", "limit": 100, "offset": 0}
request = urllib.request.Request(
"https://fizgujocdsnnvmwbrvgq.supabase.co/functions/v1/api?route=integracao",
data=json.dumps(payload).encode("utf-8"),
headers={"Authorization": "Bearer " + os.environ["PSICOGES_API_KEY"],
"Content-Type": "application/json"}, method="POST")
try:
with urllib.request.urlopen(request, timeout=30) as response:
data = json.load(response)
print(data["usuarios"])
except urllib.error.HTTPError as error:
message = json.loads(error.read().decode("utf-8"))
raise RuntimeError(f"HTTP {error.code}: {message.get('error', 'Falha')}") from error