Google Forms в Discord: как настроить упоминание ролей при выборе сервера
Интеграция Google Forms с Discord через Webhook - мощный инструмент для автоматизации уведомлений. Часто требуется, чтобы при выборе определённого сервера (например, "VP") в форме автоматически упоминалась соответствующая роль в Discord. Разберём, как доработать существующий скрипт Google Apps Script для этой задачи.
Проблема: условное упоминание ролей
Исходный код отправляет фиксированный mention (mention = "<@&1316356148944703550>"). Это значит, что всегда упоминается одна и та же роль, независимо от ответа пользователя. Чтобы упоминать разные роли в зависимости от выбора (например, "VP" или "Admin"), нужно динамически формировать mention на основе ответа.
Решение: динамическая смена роли через условие
Добавьте в скрипт проверку ответа на вопрос о сервере. Например, если вопрос называется "Выберите сервер", а ответ - "VP", то mention меняется на ID роли VP. Вот пример доработки:
// После получения ответов
for (var i = 0; i < response.length; i++) {
const question = response[i].getItem().getTitle();
const answer = response[i].getResponse();
if (question === "Выберите сервер") {
if (answer === "VP") {
mention = "<@&РОЛЬ_VP_ID>";
} else if (answer === "Другой сервер") {
mention = "<@&РОЛЬ_ДРУГОЙ_ID>";
}
}
}Замените РОЛЬ_VP_ID и РОЛЬ_ДРУГОЙ_ID на реальные ID ролей из вашего Discord-сервера. ID можно получить, включив режим разработчика в Discord и кликнув правой кнопкой мыши по роли.
Полный алгоритм настройки
1. Подготовка Google Forms
- Создайте вопрос с типом "Выбор из списка" (например, "Выберите сервер").
- Добавьте варианты: "VP", "Admin", "Moderator" и т.д.
- Убедитесь, что форма привязана к Google Таблице (вкладка "Ответы").
2. Настройка скрипта Google Apps Script
- Откройте редактор скриптов (Расширения → Apps Script).
- Вставьте исходный код, затем добавьте условие для динамического mention.
- Укажите правильные Webhook URL в массиве
webhooks. - Установите триггер на отправку формы (Редактор скриптов → Триггеры → Добавить триггер: функция
plainTextилиembedText, событие - при отправке формы).
3. Тестирование
Заполните форму с разными вариантами сервера. Проверьте, что в Discord приходит сообщение с упоминанием соответствующей роли. Если роль не упоминается, проверьте ID роли и права бота (Webhook должен иметь право упоминать роли).
Частые ошибки и их решение
Ошибка: роль не упоминается
Убедитесь, что Webhook имеет разрешение "Упоминать @everyone, @here и все роли" в настройках канала Discord. Также проверьте, что ID роли указан без пробелов.
Ошибка: скрипт не срабатывает
Проверьте триггеры в Apps Script. Если триггер не настроен, скрипт не будет запускаться автоматически. Также убедитесь, что Webhook URL валиден.
Заключение
Динамическое упоминание ролей в Discord на основе ответов Google Forms - задача на 10 минут. Главное - правильно считать ответ пользователя и подставить нужный ID роли. Используйте предложенный код как шаблон и адаптируйте под свои нужды.