Spaces:
test-sj-crm
/
Runtime error

psy / up_gr.html
DmitrMakeev's picture
Update up_gr.html
ca8ed36 verified
raw
history blame
5.41 kB
<!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>
<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;
}
.create-button {
color: white;
background-color: #4CAF50;
border: none;
cursor: pointer;
padding: 10px 20px;
font-size: 16px;
border-radius: 5px;
margin-top: 20px;
}
.create-button:hover {
background-color: #388E3C;
}
.group-id-container {
margin-top: 20px;
}
.group-id {
color: #4CAF50;
cursor: pointer;
font-size: 16px;
}
.group-id:hover {
text-decoration: underline;
}
</style>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
</head>
<body>
<h1>Create Group with Members</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 class="create-button" id="createGroupButton">Create Group</button>
<div class="group-id-container">
<span class="group-id" id="groupIdToCopy" onclick="copyToClipboard(this)">Click here to copy the group ID</span>
</div>
<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) {
Toastify({
text: "Please enter an API key, group name, and select a file.",
duration: 3000,
gravity: "top",
position: "right",
backgroundColor: "red",
}).showToast();
return;
}
const reader = new FileReader();
reader.onload = async function(event) {
const text = event.target.result;
const chatIds = text.split('\n').map(line => line.trim() + '@c.us').filter(line => line);
const payload = {
groupName: groupName,
chatIds: chatIds
};
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)
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
document.getElementById('groupIdToCopy').innerText = data.chatId;
Toastify({
text: "Group created successfully!",
duration: 3000,
gravity: "top",
position: "right",
backgroundColor: "green",
}).showToast();
} catch (error) {
Toastify({
text: "Error creating group.",
duration: 3000,
gravity: "top",
position: "right",
backgroundColor: "red",
}).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: "Group ID copied to clipboard!",
duration: 3000,
gravity: "top",
position: "right",
backgroundColor: "green",
}).showToast();
}
</script>
</body>
</html>