Spaces:
Sleeping
Sleeping
File size: 6,268 Bytes
324e9d8 601be0e 46ff083 324e9d8 4e50c71 324e9d8 975e48d da80c62 324e9d8 da80c62 324e9d8 c52dcef da80c62 c52dcef 324e9d8 3f6fb80 324e9d8 debe32c 601be0e 324e9d8 4e50c71 3f6fb80 c52dcef cec61c0 c52dcef 46ff083 324e9d8 debe32c 324e9d8 4e50c71 975e48d debe32c da80c62 324e9d8 975e48d 4e50c71 da80c62 050d1f6 4e50c71 debe32c 4e50c71 975e48d da80c62 4e50c71 c52dcef 4e50c71 c52dcef 4e50c71 975e48d da80c62 4e50c71 da80c62 4e50c71 975e48d 4e50c71 c52dcef f3f8f88 027c0c9 f3f8f88 da80c62 4e50c71 46ff083 027c0c9 46ff083 324e9d8 4e50c71 324e9d8 c52dcef 46ff083 027c0c9 46ff083 027c0c9 46ff083 c52dcef 324e9d8 975e48d ca8ed36 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Create Group with Members</title>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css">
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
background-color: #f0f0f0;
margin: 0;
padding: 0;
}
h1 {
background-color: #4CAF50;
color: white;
padding: 20px;
margin: 0;
border-bottom: 2px solid #388E3C;
}
.input-row {
display: flex;
justify-content: center;
gap: 10px;
margin-top: 20px;
}
.input-row input {
padding: 10px;
font-size: 16px;
border: 1px solid #ccc;
border-radius: 5px;
}
#fileInput {
margin-top: 20px;
}
#createGroupButton {
color: white;
background-color: #4CAF50;
border: none;
cursor: pointer;
padding: 10px 20px;
font-size: 16px;
border-radius: 5px;
margin-top: 20px;
}
#createGroupButton:hover {
background-color: #388E3C;
}
.group-id-container {
margin-top: 20px;
}
.group-id {
display: inline-block;
padding: 10px;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 5px;
cursor: pointer;
}
</style>
</head>
<body>
<h1>Создание закрытой группы пользователей</h1>
<div class="input-row">
<input type="text" id="apiKeyInput" placeholder="Enter API key">
<input type="text" id="groupNameInput" placeholder="Enter group name">
</div>
<input type="file" id="fileInput" accept=".txt">
<button id="createGroupButton">Добавть группу</button>
<div class="group-id-container">
<span class="group-id" id="groupIdToCopy" onclick="copyToClipboard(this)">После создание группы, кликните что бы скопировать ИД</span>
</div>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
<script>
document.getElementById('createGroupButton').addEventListener('click', async function() {
const apiKey = document.getElementById('apiKeyInput').value;
const groupName = document.getElementById('groupNameInput').value;
const fileInput = document.getElementById('fileInput');
const file = fileInput.files[0];
if (!apiKey || !groupName || !file) {
alert('Please enter an API key, group name, and select a file.');
return;
}
const reader = new FileReader();
reader.onload = async function(event) {
const text = event.target.result;
const chatIds = text.split('\n')
.map(line => line.trim())
.filter(line => line && /^\d+$/.test(line))
.map(line => line + '@c.us');
if (chatIds.length === 0) {
alert('The file must contain valid phone numbers.');
return;
}
const payload = {
groupName: groupName,
chatIds: chatIds
};
console.log('Payload:', payload);
try {
const url = `https://api.green-api.com/waInstance1101952913/createGroup/${apiKey}`;
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
});
console.log('Response status:', response.status);
if (!response.ok) {
const errorText = await response.text();
console.error('Error response:', errorText);
throw new Error(`HTTP error! status: ${response.status} - ${errorText}`);
}
const data = await response.json();
document.getElementById('groupIdToCopy').innerText = data.chatId;
Toastify({
text: "Группв созданна успешно, пользователи добавленны!",
duration: 3000,
gravity: "top",
position: "right",
backgroundColor: "#96fa9d",
}).showToast();
console.log('Response JSON:', data);
} catch (error) {
Toastify({
text: "Ошибка создания группы!",
duration: 3000,
gravity: "top",
position: "right",
backgroundColor: "#fa0202",
}).showToast();
}
};
reader.readAsText(file);
});
function copyToClipboard(element) {
const tempInput = document.createElement('input');
document.body.appendChild(tempInput);
tempInput.value = element.innerText;
tempInput.select();
document.execCommand('copy');
document.body.removeChild(tempInput);
Toastify({
text: "ИД группы скопировано, обязательно сохраните его, в последующем вы не сможете его получить!",
duration: 3000,
gravity: "top",
position: "right",
backgroundColor: "#fa8202",
}).showToast();
}
</script>
</body>
</html>
|