@MrBeonid

Как сделать так, чтобы Гугл форма отправляла в разные каналы дискорда вебхук сообщения?

У меня есть код для отправки ответа Гугл формы - в канал дискорда через Вебхук

et webhook = ""; /* в кавычках ссылка на вебхук */

let title = "", /* в кавычках заголовок формы (не очень то и нужен) */

avatarImage = "", /* в кавычках ссылка на аватар справа от текста */

shortDescription = "", /* в кавычках подзаголовок формы (не очень то и нужен) */

colour = "#db2525", /* Цвет полоски. HEX цвет можно взять отсюда. https://www.spycolor.com/# */

mention = "", /* сообщение перед отправкой формы */

type = "embed";

const splitQuestions = 99, /* после 4х строчек, будет разделение формы, полезно если Ваша форма имеет более 2000 символов */

bonusFeatures = { convert2Link: 'ON', convert2Mention: 'ON' }





/*

                                                ПОЖАЛУЙСТА, НИЧЕГО НЕ МЕНЯЙ НИЖЕ, ЕСЛИ НЕ ЗНАЕШЬ, КАК ЭТО РАБОТАЕТ !!!!!

*/



const form = FormApp.getActiveForm(), allResponses = form.getResponses(), latestResponse = allResponses[allResponses.length - 1]; let response, items = []; try { response = latestResponse.getItemResponses() } catch (error) { throw "No Responses found in your form." } const lock = LockService.getScriptLock(); for (var i = 0; i < response.length; i += 1) { const question = response[i].getItem().getTitle(), answer = response[i].getResponse(); if (answer == "") { continue } items.push({ "name": question, "value": answer }); function data(item) { const linkValidate = /(?:(?:https?|http?):\/\/)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$])/i; if (bonusFeatures.convert2Mention == 'ON' && !isNaN(item.value) && item.value.length == 18) { item.value = `<@!${item.value}>` } if (bonusFeatures.convert2Link == 'ON' && type.toLowerCase() !== 'text') { if (linkValidate.test(item.value)) { item.value = `[${item.value}](${item.value})` } } else { if (bonusFeatures.convert2Link == 'ON' && linkValidate.test(item.value)) { item.value = `<${item.value}>` } } if (Array.isArray(item.value)) { item.value = item.value.join('\n') } return { "name": item.name, "value": item.value } } } let splits = { count: 0, sidebar: colour ? parseInt(colour.substr(1), 16) : Math.floor(Math.random() * 16777215) }; function submission(e) { function chunkArray(myArray, chunk_size) { var index = 0; var arrayLength = myArray.length; var tempArray = []; for (index = 0; index < arrayLength; index += chunk_size) { myChunk = myArray.slice(index, index + chunk_size); tempArray.push(myChunk) } return tempArray } if (type.toLowerCase() == "text") { for (const res of chunkArray(items.map(data), splitQuestions)) { splits.count++; const text = { "method": "post", "headers": { "Content-Type": "application/json" }, "muteHttpExceptions": true, "payload": JSON.stringify({ "content": `${splits.count > 1 ? null : mention ? `${mention} ` : ''}${splits.count > 1 ? '' : title ? `_${title}_` : `${form.getTitle()}__`}\n\n${shortDescription ? `${shortDescription}\n\n${res.map(r => `> **${r.name}**\n${r.value}`).join('\n\n')}` : res.map(r => `> **${r.name}**\n${r.value}`).join('\n\n')}` }) }; UrlFetchApp.fetch(webhook, text); lock.tryLock(10000) } } else if (type.toLowerCase() == "embed") { for (const res of chunkArray(items.map(data), splitQuestions)) { splits.count++; const embed = { "method": "post", "headers": { "Content-Type": "application/json" }, "muteHttpExceptions": true, "payload": JSON.stringify({ "content": splits.count > 1 ? null : mention ? mention : '', "embeds": [{ "title": splits.count > 1 ? null : title ? title : form.getTitle(), "description": shortDescription ? shortDescription : null, "fields": res, "thumbnail": { url: avatarImage ? encodeURI(avatarImage) : null }, "color": splits.sidebar, "timestamp": new Date().toISOString() }] }) }; UrlFetchApp.fetch(webhook, embed); lock.tryLock(10000) } } else { throw "TYPE can only be TEXT or EMBED" } }


И есть Гугл форма


Как сделать так, чтобы отвечая на один из этих вариантов
638eb3032793b584867495.png

Вебхук отправлял сообщение в соответствующий канал
  • Вопрос задан
  • 220 просмотров
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы