Как настроить вебхук в Discord, чтобы данные, отправленные через заполненную Google форму, автоматически поступали одновременно на два канала?

Как можно настроить отправку данных с Google Формы на два разных канала Discord независимо от ответа? Вот код для отправки данных: [исходный код].
  • 12 марта 2024 г. 13:39
Ответы на вопрос 2
Для настройки вебхука в Discord, чтобы данные, отправленные через Google форму, автоматически поступали на два канала, вам понадобится использовать сервисы интеграции, такие как Zapier или Integromat. 

Сначала вам нужно создать вебхук в Discord для каждого канала, на который вы хотите отправлять данные. Затем вы должны создать соответствующие действия в сервисе интеграции для отправки данных на оба вебхука Discord одновременно.

Код для отправки данных на вебхук Discord может выглядеть примерно так:

```javascript
const webhookUrlChannel1 = "https://discordapp.com/api/webhooks/XXXXX/XXXXX";
const webhookUrlChannel2 = "https://discordapp.com/api/webhooks/YYYYY/YYYYY";

const data = {
  content: "Новые данные из Google формы",
  username: "Имя пользователя",
  avatar_url: "URL аватара"
};

fetch(webhookUrlChannel1, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(data),
});

fetch(webhookUrlChannel2, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(data),
});
```

Поместите этот код в обработчик данных, который будет выполняться при отправке Google формы. После этого данные будут отправляться одновременно на оба канала Discord.

Надеюсь, это поможет вам настроить отправку данных с Google Формы на два разных канала Discord!
var CHANNEL_1_URL = ""
var CHANNEL_2_URL = ""

function onSubmit(e) {
var form = FormApp.getActiveForm();
var allResponses = form.getResponses();
var latestResponse = allResponses[allResponses.length - 1];
var response = latestResponse.getItemResponses();
var items = [];

// Извлекаем Discord ID из последнего ответа
var discordID = response[response.length - 1].getResponse();

for (var i = 0; i < response.length - 1; i++) { // Исключаем последний ответ, так как это Discord ID
var question = response[i].getItem().getTitle();
var answer = response[i].getResponse();
try {
var parts = answer.match(/[\s\S]{1,1024}/g) || [];
} catch (e) {
var parts = answer;
}

if (answer == "") {
continue;
}
for (var j = 0; j < parts.length; j++) {
if (j == 0) {
items.push({
"name": question,
"value": parts[j],
"inline": false
});
} else {
items.push({
"name": question.concat(" (cont.)"),
"value": parts[j],
"inline": false
});
}
}
}

// Добавляем тег пользователя внизу формы в раздел "fields"
items.push({
"name": "Отправил/отправила форму:",
"value": "<@" + discordID + ">",
"inline": false
});

var options = {
"method": "post",
"headers": {
"Content-Type": "application/json",
},
"payload": JSON.stringify({
"content": "", // Название сообщения, тег

"embeds": [{
"type": 'rich',
"author": {
"name": "",
"icon_url": "" // Верхний колонтитул
},
"title": "Оставить отчет!",
"timestamp": new Date().toISOString(), // Время переменной введено
"url": "", // Заголовок с гиперссылкой
"color": , // Цвет боковой штучки
"fields": items,
"footer": {
"text": "",
"icon_url": "" // Нижний колонтитул с иконочкой
},
"image": {
"url": "" // Большая картинка снизу
},
}],
})
};

UrlFetchApp.fetch(CHANNEL_1_URL, options);
UrlFetchApp.fetch(CHANNEL_2_URL, options);
}
Похожие вопросы