curl -X POST https://zapclass.com.br/api/groups/resetInviteCode \
-H "Content-Type: application/json" \
-H "Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP" \
-d '{
"groupjid": "120363308883996631@g.us"
}'
RESPONSE=$(curl -s -X POST https://zapclass.com.br/api/groups/resetInviteCode \
-H "Content-Type: application/json" \
-H "Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP" \
-d '{
"groupjid": "120363308883996631@g.us"
}')
NEW_LINK=$(echo $RESPONSE | jq -r '.inviteLink')
echo "Novo link de convite: $NEW_LINK"
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({
groupjid: "120363308883996631@g.us",
}),
}
);
const data = await response.json();
if (data.success) {
console.log("Código resetado com sucesso!");
console.log("Novo link:", data.inviteLink);
console.log("Novo código:", data.inviteCode);
}
async function resetInviteCodeWithConfirmation(groupJid) {
// Busca informações do grupo primeiro
const infoResponse = await fetch("https://zapclass.com.br/api/groups/info", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({
groupjid: groupJid,
getInviteLink: true,
}),
});
const groupInfo = await infoResponse.json();
if (!groupInfo.success) {
throw new Error(groupInfo.message);
}
console.log(`Grupo: ${groupInfo.group.name}`);
console.log(`Link atual: ${groupInfo.group.inviteLink}`);
console.log("\n⚠️ ATENÇÃO: O link atual será invalidado!");
const confirm = true; // Em ambiente real, pedir confirmação do usuário
if (!confirm) {
console.log("Operação cancelada");
return { cancelled: true };
}
// Reseta o código
const resetResponse = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const result = await resetResponse.json();
if (result.success) {
console.log("\n✓ Código resetado com sucesso!");
console.log(`Novo link: ${result.inviteLink}`);
console.log("\n⚠️ Compartilhe o novo link apenas com pessoas autorizadas");
}
return result;
}
// Uso
try {
await resetInviteCodeWithConfirmation("120363308883996631@g.us");
} catch (error) {
console.error("Erro:", error.message);
}
async function schedulePeriodicReset(groupJid, intervalDays) {
console.log(`Iniciando rotação automática a cada ${intervalDays} dias`);
const resetLink = async () => {
try {
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const data = await response.json();
if (data.success) {
const timestamp = new Date().toLocaleString("pt-BR");
console.log(`[${timestamp}] ✓ Link resetado: ${data.inviteLink}`);
// Aqui você poderia enviar notificação, salvar em banco, etc.
return data.inviteLink;
} else {
console.error(
`[${new Date().toLocaleString("pt-BR")}] ✗ Erro: ${data.message}`
);
}
} catch (error) {
console.error(
`[${new Date().toLocaleString("pt-BR")}] ✗ Erro:`,
error.message
);
}
};
// Reset inicial
await resetLink();
// Agenda resets periódicos
const intervalMs = intervalDays * 24 * 60 * 60 * 1000;
const intervalId = setInterval(resetLink, intervalMs);
return {
stop: () => clearInterval(intervalId),
};
}
// Uso - resetar link a cada 7 dias
const scheduler = await schedulePeriodicReset("120363308883996631@g.us", 7);
// Para parar: scheduler.stop();
async function resetMultipleGroupLinks(groupJids) {
const results = [];
for (const groupJid of groupJids) {
try {
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const data = await response.json();
results.push({
groupJid,
success: data.success,
newLink: data.inviteLink || null,
error: data.message || null,
});
// Aguarda 2 segundos entre cada operação
await new Promise((resolve) => setTimeout(resolve, 2000));
} catch (error) {
results.push({
groupJid,
success: false,
newLink: null,
error: error.message,
});
}
}
return results;
}
// Uso
const groups = [
"120363308883996631@g.us",
"120363308883996632@g.us",
"120363308883996633@g.us",
];
const results = await resetMultipleGroupLinks(groups);
console.log("=== RESULTADOS DO RESET ===");
results.forEach((result) => {
if (result.success) {
console.log(`\n✓ ${result.groupJid}`);
console.log(` Novo link: ${result.newLink}`);
} else {
console.log(`\n✗ ${result.groupJid}`);
console.log(` Erro: ${result.error}`);
}
});
async function resetAndNotify(groupJid, adminNumbers) {
// Reseta o código
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const data = await response.json();
if (!data.success) {
throw new Error(data.message);
}
console.log("✓ Link resetado com sucesso");
// Notifica administradores sobre o novo link
const message =
`🔐 *Link de Convite Atualizado*\n\n` +
`O link de convite do grupo foi resetado por segurança.\n\n` +
`*Novo link:*\n${data.inviteLink}\n\n` +
`⚠️ O link anterior não funciona mais.`;
for (const adminNumber of adminNumbers) {
try {
await fetch("https://zapclass.com.br/api/send/text", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({
number: adminNumber,
message: message,
}),
});
console.log(` ✓ Notificação enviada para ${adminNumber}`);
// Aguarda 1 segundo entre envios
await new Promise((resolve) => setTimeout(resolve, 1000));
} catch (error) {
console.error(` ✗ Falha ao notificar ${adminNumber}:`, error.message);
}
}
return data;
}
// Uso
const admins = ["5511999999999", "5511888888888"];
await resetAndNotify("120363308883996631@g.us", admins);
<?php
$ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');
$payload = [
"groupjid" => "120363308883996631@g.us"
];
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
if ($data['success']) {
echo "Código resetado com sucesso!\n";
echo "Novo link: {$data['inviteLink']}\n";
echo "Novo código: {$data['inviteCode']}\n";
} else {
echo "Erro: " . $data['message'];
}
curl_close($ch);
?>
<?php
function resetInviteCodeWithConfirmation($groupJid) {
// Busca informações atuais
$ch = curl_init('https://zapclass.com.br/api/groups/info');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'groupjid' => $groupJid,
'getInviteLink' => true
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$groupInfo = json_decode($response, true);
curl_close($ch);
if (!$groupInfo['success']) {
throw new Exception($groupInfo['message']);
}
echo "Grupo: {$groupInfo['group']['name']}\n";
echo "Link atual: {$groupInfo['group']['inviteLink']}\n";
echo "\n⚠️ ATENÇÃO: O link atual será invalidado!\n\n";
// Reseta o código
$ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'groupjid' => $groupJid
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
if ($result['success']) {
echo "✓ Código resetado com sucesso!\n";
echo "Novo link: {$result['inviteLink']}\n";
echo "\n⚠️ Compartilhe o novo link apenas com pessoas autorizadas\n";
} else {
echo "✗ Erro ao resetar: {$result['message']}\n";
}
return $result;
}
// Uso
try {
resetInviteCodeWithConfirmation("120363308883996631@g.us");
} catch (Exception $e) {
echo "Erro: " . $e->getMessage();
}
?>
<?php
function resetMultipleGroupLinks($groupJids) {
$results = [];
foreach ($groupJids as $groupJid) {
$ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'groupjid' => $groupJid
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);
$results[] = [
'groupJid' => $groupJid,
'success' => $data['success'],
'newLink' => $data['inviteLink'] ?? null,
'error' => $data['message'] ?? null
];
// Aguarda 2 segundos entre operações
sleep(2);
}
return $results;
}
// Uso
$groups = [
"120363308883996631@g.us",
"120363308883996632@g.us",
"120363308883996633@g.us"
];
$results = resetMultipleGroupLinks($groups);
echo "=== RESULTADOS DO RESET ===\n\n";
foreach ($results as $result) {
if ($result['success']) {
echo "✓ {$result['groupJid']}\n";
echo " Novo link: {$result['newLink']}\n\n";
} else {
echo "✗ {$result['groupJid']}\n";
echo " Erro: {$result['error']}\n\n";
}
}
?>
<?php
class GroupInviteManager {
private $token;
private $baseUrl = 'https://zapclass.com.br/api';
public function __construct($token) {
$this->token = $token;
}
private function makeRequest($endpoint, $payload) {
$ch = curl_init($this->baseUrl . $endpoint);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
"Authorization: Bearer {$this->token}"
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
public function getCurrentLink($groupJid) {
$data = $this->makeRequest('/groups/info', [
'groupjid' => $groupJid,
'getInviteLink' => true
]);
if (!$data['success']) {
throw new Exception($data['message']);
}
return $data['group']['inviteLink'] ?? null;
}
public function resetInviteCode($groupJid, $showConfirmation = true) {
if ($showConfirmation) {
$currentLink = $this->getCurrentLink($groupJid);
echo "⚠️ Link atual será invalidado: {$currentLink}\n";
}
$data = $this->makeRequest('/groups/resetInviteCode', [
'groupjid' => $groupJid
]);
if (!$data['success']) {
throw new Exception($data['message']);
}
return [
'newLink' => $data['inviteLink'],
'newCode' => $data['inviteCode']
];
}
public function scheduleReset($groupJid, $daysInterval) {
$lastReset = time();
$intervalSeconds = $daysInterval * 24 * 60 * 60;
echo "Agendamento criado: reset a cada {$daysInterval} dias\n";
echo "Próximo reset: " . date('d/m/Y H:i', $lastReset + $intervalSeconds) . "\n";
// Em produção, usar cron job ou task scheduler
return [
'groupJid' => $groupJid,
'interval' => $daysInterval,
'nextReset' => $lastReset + $intervalSeconds
];
}
public function resetMultiple($groupJids, $delay = 2) {
$results = [];
foreach ($groupJids as $groupJid) {
try {
$result = $this->resetInviteCode($groupJid, false);
$results[$groupJid] = [
'success' => true,
'newLink' => $result['newLink']
];
} catch (Exception $e) {
$results[$groupJid] = [
'success' => false,
'error' => $e->getMessage()
];
}
if ($delay > 0) {
sleep($delay);
}
}
return $results;
}
}
// Uso
$manager = new GroupInviteManager('zt_BppKZWtzvj1X2SbJAuOSkA0Z63uDBQ0wkb28NJaloKeOUnHk');
try {
// Resetar um grupo
$result = $manager->resetInviteCode("120363308883996631@g.us");
echo "Novo link: {$result['newLink']}\n\n";
// Resetar múltiplos grupos
$groups = [
"120363308883996631@g.us",
"120363308883996632@g.us"
];
$results = $manager->resetMultiple($groups);
echo "=== RESULTADOS ===\n";
foreach ($results as $groupJid => $result) {
if ($result['success']) {
echo "✓ {$groupJid}\n {$result['newLink']}\n\n";
} else {
echo "✗ {$groupJid}\n {$result['error']}\n\n";
}
}
// Agendar reset periódico
$schedule = $manager->scheduleReset("120363308883996631@g.us", 7);
print_r($schedule);
} catch (Exception $e) {
echo "Erro: " . $e->getMessage();
}
?>
{
"success": true,
"message": "Invite code reset successfully",
"inviteLink": "https://chat.whatsapp.com/XyZ9AbCdEfGhIjKlMnOp",
"inviteCode": "XyZ9AbCdEfGhIjKlMnOp",
"groupJid": "120363308883996631@g.us"
}
{
"success": false,
"message": "Group JID inválido ou mal formatado"
}
{
"success": false,
"message": "Você precisa ser administrador do grupo para resetar o código de convite"
}
{
"success": false,
"message": "Grupo não encontrado ou você não é membro"
}
{
"success": false,
"message": "Você não é membro deste grupo"
}
{
"success": false,
"message": "Erro ao resetar código de convite. Tente novamente"
}
{
"success": false,
"message": "Falha na conexão com o WhatsApp. Verifique sua instância"
}
Grupos
Resetar Link de Convite
Revogar link de convite atual e gerar novo código
POST
/
groups
/
resetInviteCode
curl -X POST https://zapclass.com.br/api/groups/resetInviteCode \
-H "Content-Type: application/json" \
-H "Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP" \
-d '{
"groupjid": "120363308883996631@g.us"
}'
RESPONSE=$(curl -s -X POST https://zapclass.com.br/api/groups/resetInviteCode \
-H "Content-Type: application/json" \
-H "Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP" \
-d '{
"groupjid": "120363308883996631@g.us"
}')
NEW_LINK=$(echo $RESPONSE | jq -r '.inviteLink')
echo "Novo link de convite: $NEW_LINK"
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({
groupjid: "120363308883996631@g.us",
}),
}
);
const data = await response.json();
if (data.success) {
console.log("Código resetado com sucesso!");
console.log("Novo link:", data.inviteLink);
console.log("Novo código:", data.inviteCode);
}
async function resetInviteCodeWithConfirmation(groupJid) {
// Busca informações do grupo primeiro
const infoResponse = await fetch("https://zapclass.com.br/api/groups/info", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({
groupjid: groupJid,
getInviteLink: true,
}),
});
const groupInfo = await infoResponse.json();
if (!groupInfo.success) {
throw new Error(groupInfo.message);
}
console.log(`Grupo: ${groupInfo.group.name}`);
console.log(`Link atual: ${groupInfo.group.inviteLink}`);
console.log("\n⚠️ ATENÇÃO: O link atual será invalidado!");
const confirm = true; // Em ambiente real, pedir confirmação do usuário
if (!confirm) {
console.log("Operação cancelada");
return { cancelled: true };
}
// Reseta o código
const resetResponse = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const result = await resetResponse.json();
if (result.success) {
console.log("\n✓ Código resetado com sucesso!");
console.log(`Novo link: ${result.inviteLink}`);
console.log("\n⚠️ Compartilhe o novo link apenas com pessoas autorizadas");
}
return result;
}
// Uso
try {
await resetInviteCodeWithConfirmation("120363308883996631@g.us");
} catch (error) {
console.error("Erro:", error.message);
}
async function schedulePeriodicReset(groupJid, intervalDays) {
console.log(`Iniciando rotação automática a cada ${intervalDays} dias`);
const resetLink = async () => {
try {
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const data = await response.json();
if (data.success) {
const timestamp = new Date().toLocaleString("pt-BR");
console.log(`[${timestamp}] ✓ Link resetado: ${data.inviteLink}`);
// Aqui você poderia enviar notificação, salvar em banco, etc.
return data.inviteLink;
} else {
console.error(
`[${new Date().toLocaleString("pt-BR")}] ✗ Erro: ${data.message}`
);
}
} catch (error) {
console.error(
`[${new Date().toLocaleString("pt-BR")}] ✗ Erro:`,
error.message
);
}
};
// Reset inicial
await resetLink();
// Agenda resets periódicos
const intervalMs = intervalDays * 24 * 60 * 60 * 1000;
const intervalId = setInterval(resetLink, intervalMs);
return {
stop: () => clearInterval(intervalId),
};
}
// Uso - resetar link a cada 7 dias
const scheduler = await schedulePeriodicReset("120363308883996631@g.us", 7);
// Para parar: scheduler.stop();
async function resetMultipleGroupLinks(groupJids) {
const results = [];
for (const groupJid of groupJids) {
try {
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const data = await response.json();
results.push({
groupJid,
success: data.success,
newLink: data.inviteLink || null,
error: data.message || null,
});
// Aguarda 2 segundos entre cada operação
await new Promise((resolve) => setTimeout(resolve, 2000));
} catch (error) {
results.push({
groupJid,
success: false,
newLink: null,
error: error.message,
});
}
}
return results;
}
// Uso
const groups = [
"120363308883996631@g.us",
"120363308883996632@g.us",
"120363308883996633@g.us",
];
const results = await resetMultipleGroupLinks(groups);
console.log("=== RESULTADOS DO RESET ===");
results.forEach((result) => {
if (result.success) {
console.log(`\n✓ ${result.groupJid}`);
console.log(` Novo link: ${result.newLink}`);
} else {
console.log(`\n✗ ${result.groupJid}`);
console.log(` Erro: ${result.error}`);
}
});
async function resetAndNotify(groupJid, adminNumbers) {
// Reseta o código
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const data = await response.json();
if (!data.success) {
throw new Error(data.message);
}
console.log("✓ Link resetado com sucesso");
// Notifica administradores sobre o novo link
const message =
`🔐 *Link de Convite Atualizado*\n\n` +
`O link de convite do grupo foi resetado por segurança.\n\n` +
`*Novo link:*\n${data.inviteLink}\n\n` +
`⚠️ O link anterior não funciona mais.`;
for (const adminNumber of adminNumbers) {
try {
await fetch("https://zapclass.com.br/api/send/text", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({
number: adminNumber,
message: message,
}),
});
console.log(` ✓ Notificação enviada para ${adminNumber}`);
// Aguarda 1 segundo entre envios
await new Promise((resolve) => setTimeout(resolve, 1000));
} catch (error) {
console.error(` ✗ Falha ao notificar ${adminNumber}:`, error.message);
}
}
return data;
}
// Uso
const admins = ["5511999999999", "5511888888888"];
await resetAndNotify("120363308883996631@g.us", admins);
<?php
$ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');
$payload = [
"groupjid" => "120363308883996631@g.us"
];
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
if ($data['success']) {
echo "Código resetado com sucesso!\n";
echo "Novo link: {$data['inviteLink']}\n";
echo "Novo código: {$data['inviteCode']}\n";
} else {
echo "Erro: " . $data['message'];
}
curl_close($ch);
?>
<?php
function resetInviteCodeWithConfirmation($groupJid) {
// Busca informações atuais
$ch = curl_init('https://zapclass.com.br/api/groups/info');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'groupjid' => $groupJid,
'getInviteLink' => true
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$groupInfo = json_decode($response, true);
curl_close($ch);
if (!$groupInfo['success']) {
throw new Exception($groupInfo['message']);
}
echo "Grupo: {$groupInfo['group']['name']}\n";
echo "Link atual: {$groupInfo['group']['inviteLink']}\n";
echo "\n⚠️ ATENÇÃO: O link atual será invalidado!\n\n";
// Reseta o código
$ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'groupjid' => $groupJid
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
if ($result['success']) {
echo "✓ Código resetado com sucesso!\n";
echo "Novo link: {$result['inviteLink']}\n";
echo "\n⚠️ Compartilhe o novo link apenas com pessoas autorizadas\n";
} else {
echo "✗ Erro ao resetar: {$result['message']}\n";
}
return $result;
}
// Uso
try {
resetInviteCodeWithConfirmation("120363308883996631@g.us");
} catch (Exception $e) {
echo "Erro: " . $e->getMessage();
}
?>
<?php
function resetMultipleGroupLinks($groupJids) {
$results = [];
foreach ($groupJids as $groupJid) {
$ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'groupjid' => $groupJid
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);
$results[] = [
'groupJid' => $groupJid,
'success' => $data['success'],
'newLink' => $data['inviteLink'] ?? null,
'error' => $data['message'] ?? null
];
// Aguarda 2 segundos entre operações
sleep(2);
}
return $results;
}
// Uso
$groups = [
"120363308883996631@g.us",
"120363308883996632@g.us",
"120363308883996633@g.us"
];
$results = resetMultipleGroupLinks($groups);
echo "=== RESULTADOS DO RESET ===\n\n";
foreach ($results as $result) {
if ($result['success']) {
echo "✓ {$result['groupJid']}\n";
echo " Novo link: {$result['newLink']}\n\n";
} else {
echo "✗ {$result['groupJid']}\n";
echo " Erro: {$result['error']}\n\n";
}
}
?>
<?php
class GroupInviteManager {
private $token;
private $baseUrl = 'https://zapclass.com.br/api';
public function __construct($token) {
$this->token = $token;
}
private function makeRequest($endpoint, $payload) {
$ch = curl_init($this->baseUrl . $endpoint);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
"Authorization: Bearer {$this->token}"
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
public function getCurrentLink($groupJid) {
$data = $this->makeRequest('/groups/info', [
'groupjid' => $groupJid,
'getInviteLink' => true
]);
if (!$data['success']) {
throw new Exception($data['message']);
}
return $data['group']['inviteLink'] ?? null;
}
public function resetInviteCode($groupJid, $showConfirmation = true) {
if ($showConfirmation) {
$currentLink = $this->getCurrentLink($groupJid);
echo "⚠️ Link atual será invalidado: {$currentLink}\n";
}
$data = $this->makeRequest('/groups/resetInviteCode', [
'groupjid' => $groupJid
]);
if (!$data['success']) {
throw new Exception($data['message']);
}
return [
'newLink' => $data['inviteLink'],
'newCode' => $data['inviteCode']
];
}
public function scheduleReset($groupJid, $daysInterval) {
$lastReset = time();
$intervalSeconds = $daysInterval * 24 * 60 * 60;
echo "Agendamento criado: reset a cada {$daysInterval} dias\n";
echo "Próximo reset: " . date('d/m/Y H:i', $lastReset + $intervalSeconds) . "\n";
// Em produção, usar cron job ou task scheduler
return [
'groupJid' => $groupJid,
'interval' => $daysInterval,
'nextReset' => $lastReset + $intervalSeconds
];
}
public function resetMultiple($groupJids, $delay = 2) {
$results = [];
foreach ($groupJids as $groupJid) {
try {
$result = $this->resetInviteCode($groupJid, false);
$results[$groupJid] = [
'success' => true,
'newLink' => $result['newLink']
];
} catch (Exception $e) {
$results[$groupJid] = [
'success' => false,
'error' => $e->getMessage()
];
}
if ($delay > 0) {
sleep($delay);
}
}
return $results;
}
}
// Uso
$manager = new GroupInviteManager('zt_BppKZWtzvj1X2SbJAuOSkA0Z63uDBQ0wkb28NJaloKeOUnHk');
try {
// Resetar um grupo
$result = $manager->resetInviteCode("120363308883996631@g.us");
echo "Novo link: {$result['newLink']}\n\n";
// Resetar múltiplos grupos
$groups = [
"120363308883996631@g.us",
"120363308883996632@g.us"
];
$results = $manager->resetMultiple($groups);
echo "=== RESULTADOS ===\n";
foreach ($results as $groupJid => $result) {
if ($result['success']) {
echo "✓ {$groupJid}\n {$result['newLink']}\n\n";
} else {
echo "✗ {$groupJid}\n {$result['error']}\n\n";
}
}
// Agendar reset periódico
$schedule = $manager->scheduleReset("120363308883996631@g.us", 7);
print_r($schedule);
} catch (Exception $e) {
echo "Erro: " . $e->getMessage();
}
?>
{
"success": true,
"message": "Invite code reset successfully",
"inviteLink": "https://chat.whatsapp.com/XyZ9AbCdEfGhIjKlMnOp",
"inviteCode": "XyZ9AbCdEfGhIjKlMnOp",
"groupJid": "120363308883996631@g.us"
}
{
"success": false,
"message": "Group JID inválido ou mal formatado"
}
{
"success": false,
"message": "Você precisa ser administrador do grupo para resetar o código de convite"
}
{
"success": false,
"message": "Grupo não encontrado ou você não é membro"
}
{
"success": false,
"message": "Você não é membro deste grupo"
}
{
"success": false,
"message": "Erro ao resetar código de convite. Tente novamente"
}
{
"success": false,
"message": "Falha na conexão com o WhatsApp. Verifique sua instância"
}
Gera um novo código de convite para o grupo, revogando automaticamente o link anterior e impedindo novos acessos através dele.
Segurança do Link
Revogação de Acesso
Revogação de Acesso
Como funciona a invalidação do link anterior.Processo de revogação:
- Link de convite antigo é imediatamente invalidado
- Novo código único é gerado automaticamente
- Links compartilhados anteriormente param de funcionar
- Pessoas que tentarem usar o link antigo recebem erro
- Membros atuais do grupo não são afetados
Geração do Novo Link
Geração do Novo Link
Criação automática de novo código de convite.Características do novo link:
- Código completamente diferente do anterior
- URL única no formato
https://chat.whatsapp.com/[código] - Válido imediatamente após a geração
- Pode ser compartilhado com segurança
- Permanece ativo até próximo reset
Permissões Necessárias
Permissões Necessárias
Requisitos para resetar o código de convite.Você precisa ser:
- Membro ativo do grupo
- Administrador do grupo
- Conectado a uma instância válida
- Membros comuns não podem resetar o link
- Retorna erro 403 (Forbidden)
- É necessário solicitar a um administrador
Casos de Uso
Casos de Uso
Situações para resetar o código de convite.Quando resetar:
- Link foi compartilhado publicamente por engano
- Suspeita de entrada indevida de pessoas
- Mudança de política de entrada no grupo
- Link vazou em redes sociais ou fóruns
- Implementação de rotação periódica de segurança
- Após remoção de membros problemáticos
- Controle de acesso em eventos temporários
Authorization
string
required
Chave de autenticação da sua conexão, utilizada no header Authorization como
Bearer Token.
Você encontra sua API Key no botão API da sua conexão no painel ZapClass.
A chave sempre começa com o prefixo
Exemplo:
Você encontra sua API Key no botão API da sua conexão no painel ZapClass.
A chave sempre começa com o prefixo
zc_. Exemplo:
zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aPBody Parameters
string
required
Identificador único do grupo (JID).
Formato:
Exemplo:
Formato:
número@g.us Exemplo:
120363308883996631@g.usAtenção de Segurança: Ao resetar o código, todos os links compartilhados
anteriormente se tornam inválidos. Certifique-se de comunicar o novo link
apenas para pessoas autorizadas.
curl -X POST https://zapclass.com.br/api/groups/resetInviteCode \
-H "Content-Type: application/json" \
-H "Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP" \
-d '{
"groupjid": "120363308883996631@g.us"
}'
RESPONSE=$(curl -s -X POST https://zapclass.com.br/api/groups/resetInviteCode \
-H "Content-Type: application/json" \
-H "Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP" \
-d '{
"groupjid": "120363308883996631@g.us"
}')
NEW_LINK=$(echo $RESPONSE | jq -r '.inviteLink')
echo "Novo link de convite: $NEW_LINK"
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({
groupjid: "120363308883996631@g.us",
}),
}
);
const data = await response.json();
if (data.success) {
console.log("Código resetado com sucesso!");
console.log("Novo link:", data.inviteLink);
console.log("Novo código:", data.inviteCode);
}
async function resetInviteCodeWithConfirmation(groupJid) {
// Busca informações do grupo primeiro
const infoResponse = await fetch("https://zapclass.com.br/api/groups/info", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({
groupjid: groupJid,
getInviteLink: true,
}),
});
const groupInfo = await infoResponse.json();
if (!groupInfo.success) {
throw new Error(groupInfo.message);
}
console.log(`Grupo: ${groupInfo.group.name}`);
console.log(`Link atual: ${groupInfo.group.inviteLink}`);
console.log("\n⚠️ ATENÇÃO: O link atual será invalidado!");
const confirm = true; // Em ambiente real, pedir confirmação do usuário
if (!confirm) {
console.log("Operação cancelada");
return { cancelled: true };
}
// Reseta o código
const resetResponse = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const result = await resetResponse.json();
if (result.success) {
console.log("\n✓ Código resetado com sucesso!");
console.log(`Novo link: ${result.inviteLink}`);
console.log("\n⚠️ Compartilhe o novo link apenas com pessoas autorizadas");
}
return result;
}
// Uso
try {
await resetInviteCodeWithConfirmation("120363308883996631@g.us");
} catch (error) {
console.error("Erro:", error.message);
}
async function schedulePeriodicReset(groupJid, intervalDays) {
console.log(`Iniciando rotação automática a cada ${intervalDays} dias`);
const resetLink = async () => {
try {
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const data = await response.json();
if (data.success) {
const timestamp = new Date().toLocaleString("pt-BR");
console.log(`[${timestamp}] ✓ Link resetado: ${data.inviteLink}`);
// Aqui você poderia enviar notificação, salvar em banco, etc.
return data.inviteLink;
} else {
console.error(
`[${new Date().toLocaleString("pt-BR")}] ✗ Erro: ${data.message}`
);
}
} catch (error) {
console.error(
`[${new Date().toLocaleString("pt-BR")}] ✗ Erro:`,
error.message
);
}
};
// Reset inicial
await resetLink();
// Agenda resets periódicos
const intervalMs = intervalDays * 24 * 60 * 60 * 1000;
const intervalId = setInterval(resetLink, intervalMs);
return {
stop: () => clearInterval(intervalId),
};
}
// Uso - resetar link a cada 7 dias
const scheduler = await schedulePeriodicReset("120363308883996631@g.us", 7);
// Para parar: scheduler.stop();
async function resetMultipleGroupLinks(groupJids) {
const results = [];
for (const groupJid of groupJids) {
try {
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const data = await response.json();
results.push({
groupJid,
success: data.success,
newLink: data.inviteLink || null,
error: data.message || null,
});
// Aguarda 2 segundos entre cada operação
await new Promise((resolve) => setTimeout(resolve, 2000));
} catch (error) {
results.push({
groupJid,
success: false,
newLink: null,
error: error.message,
});
}
}
return results;
}
// Uso
const groups = [
"120363308883996631@g.us",
"120363308883996632@g.us",
"120363308883996633@g.us",
];
const results = await resetMultipleGroupLinks(groups);
console.log("=== RESULTADOS DO RESET ===");
results.forEach((result) => {
if (result.success) {
console.log(`\n✓ ${result.groupJid}`);
console.log(` Novo link: ${result.newLink}`);
} else {
console.log(`\n✗ ${result.groupJid}`);
console.log(` Erro: ${result.error}`);
}
});
async function resetAndNotify(groupJid, adminNumbers) {
// Reseta o código
const response = await fetch(
"https://zapclass.com.br/api/groups/resetInviteCode",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({ groupjid: groupJid }),
}
);
const data = await response.json();
if (!data.success) {
throw new Error(data.message);
}
console.log("✓ Link resetado com sucesso");
// Notifica administradores sobre o novo link
const message =
`🔐 *Link de Convite Atualizado*\n\n` +
`O link de convite do grupo foi resetado por segurança.\n\n` +
`*Novo link:*\n${data.inviteLink}\n\n` +
`⚠️ O link anterior não funciona mais.`;
for (const adminNumber of adminNumbers) {
try {
await fetch("https://zapclass.com.br/api/send/text", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
},
body: JSON.stringify({
number: adminNumber,
message: message,
}),
});
console.log(` ✓ Notificação enviada para ${adminNumber}`);
// Aguarda 1 segundo entre envios
await new Promise((resolve) => setTimeout(resolve, 1000));
} catch (error) {
console.error(` ✗ Falha ao notificar ${adminNumber}:`, error.message);
}
}
return data;
}
// Uso
const admins = ["5511999999999", "5511888888888"];
await resetAndNotify("120363308883996631@g.us", admins);
<?php
$ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');
$payload = [
"groupjid" => "120363308883996631@g.us"
];
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
if ($data['success']) {
echo "Código resetado com sucesso!\n";
echo "Novo link: {$data['inviteLink']}\n";
echo "Novo código: {$data['inviteCode']}\n";
} else {
echo "Erro: " . $data['message'];
}
curl_close($ch);
?>
<?php
function resetInviteCodeWithConfirmation($groupJid) {
// Busca informações atuais
$ch = curl_init('https://zapclass.com.br/api/groups/info');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'groupjid' => $groupJid,
'getInviteLink' => true
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$groupInfo = json_decode($response, true);
curl_close($ch);
if (!$groupInfo['success']) {
throw new Exception($groupInfo['message']);
}
echo "Grupo: {$groupInfo['group']['name']}\n";
echo "Link atual: {$groupInfo['group']['inviteLink']}\n";
echo "\n⚠️ ATENÇÃO: O link atual será invalidado!\n\n";
// Reseta o código
$ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'groupjid' => $groupJid
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
if ($result['success']) {
echo "✓ Código resetado com sucesso!\n";
echo "Novo link: {$result['inviteLink']}\n";
echo "\n⚠️ Compartilhe o novo link apenas com pessoas autorizadas\n";
} else {
echo "✗ Erro ao resetar: {$result['message']}\n";
}
return $result;
}
// Uso
try {
resetInviteCodeWithConfirmation("120363308883996631@g.us");
} catch (Exception $e) {
echo "Erro: " . $e->getMessage();
}
?>
<?php
function resetMultipleGroupLinks($groupJids) {
$results = [];
foreach ($groupJids as $groupJid) {
$ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'groupjid' => $groupJid
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);
$results[] = [
'groupJid' => $groupJid,
'success' => $data['success'],
'newLink' => $data['inviteLink'] ?? null,
'error' => $data['message'] ?? null
];
// Aguarda 2 segundos entre operações
sleep(2);
}
return $results;
}
// Uso
$groups = [
"120363308883996631@g.us",
"120363308883996632@g.us",
"120363308883996633@g.us"
];
$results = resetMultipleGroupLinks($groups);
echo "=== RESULTADOS DO RESET ===\n\n";
foreach ($results as $result) {
if ($result['success']) {
echo "✓ {$result['groupJid']}\n";
echo " Novo link: {$result['newLink']}\n\n";
} else {
echo "✗ {$result['groupJid']}\n";
echo " Erro: {$result['error']}\n\n";
}
}
?>
<?php
class GroupInviteManager {
private $token;
private $baseUrl = 'https://zapclass.com.br/api';
public function __construct($token) {
$this->token = $token;
}
private function makeRequest($endpoint, $payload) {
$ch = curl_init($this->baseUrl . $endpoint);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
"Authorization: Bearer {$this->token}"
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
public function getCurrentLink($groupJid) {
$data = $this->makeRequest('/groups/info', [
'groupjid' => $groupJid,
'getInviteLink' => true
]);
if (!$data['success']) {
throw new Exception($data['message']);
}
return $data['group']['inviteLink'] ?? null;
}
public function resetInviteCode($groupJid, $showConfirmation = true) {
if ($showConfirmation) {
$currentLink = $this->getCurrentLink($groupJid);
echo "⚠️ Link atual será invalidado: {$currentLink}\n";
}
$data = $this->makeRequest('/groups/resetInviteCode', [
'groupjid' => $groupJid
]);
if (!$data['success']) {
throw new Exception($data['message']);
}
return [
'newLink' => $data['inviteLink'],
'newCode' => $data['inviteCode']
];
}
public function scheduleReset($groupJid, $daysInterval) {
$lastReset = time();
$intervalSeconds = $daysInterval * 24 * 60 * 60;
echo "Agendamento criado: reset a cada {$daysInterval} dias\n";
echo "Próximo reset: " . date('d/m/Y H:i', $lastReset + $intervalSeconds) . "\n";
// Em produção, usar cron job ou task scheduler
return [
'groupJid' => $groupJid,
'interval' => $daysInterval,
'nextReset' => $lastReset + $intervalSeconds
];
}
public function resetMultiple($groupJids, $delay = 2) {
$results = [];
foreach ($groupJids as $groupJid) {
try {
$result = $this->resetInviteCode($groupJid, false);
$results[$groupJid] = [
'success' => true,
'newLink' => $result['newLink']
];
} catch (Exception $e) {
$results[$groupJid] = [
'success' => false,
'error' => $e->getMessage()
];
}
if ($delay > 0) {
sleep($delay);
}
}
return $results;
}
}
// Uso
$manager = new GroupInviteManager('zt_BppKZWtzvj1X2SbJAuOSkA0Z63uDBQ0wkb28NJaloKeOUnHk');
try {
// Resetar um grupo
$result = $manager->resetInviteCode("120363308883996631@g.us");
echo "Novo link: {$result['newLink']}\n\n";
// Resetar múltiplos grupos
$groups = [
"120363308883996631@g.us",
"120363308883996632@g.us"
];
$results = $manager->resetMultiple($groups);
echo "=== RESULTADOS ===\n";
foreach ($results as $groupJid => $result) {
if ($result['success']) {
echo "✓ {$groupJid}\n {$result['newLink']}\n\n";
} else {
echo "✗ {$groupJid}\n {$result['error']}\n\n";
}
}
// Agendar reset periódico
$schedule = $manager->scheduleReset("120363308883996631@g.us", 7);
print_r($schedule);
} catch (Exception $e) {
echo "Erro: " . $e->getMessage();
}
?>
{
"success": true,
"message": "Invite code reset successfully",
"inviteLink": "https://chat.whatsapp.com/XyZ9AbCdEfGhIjKlMnOp",
"inviteCode": "XyZ9AbCdEfGhIjKlMnOp",
"groupJid": "120363308883996631@g.us"
}
{
"success": false,
"message": "Group JID inválido ou mal formatado"
}
{
"success": false,
"message": "Você precisa ser administrador do grupo para resetar o código de convite"
}
{
"success": false,
"message": "Grupo não encontrado ou você não é membro"
}
{
"success": false,
"message": "Você não é membro deste grupo"
}
{
"success": false,
"message": "Erro ao resetar código de convite. Tente novamente"
}
{
"success": false,
"message": "Falha na conexão com o WhatsApp. Verifique sua instância"
}
⌘I

