Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Напишем-ка бота
- Статья: https://spreadsheets.ru/sobirator
- МЫ=
- Канал “Google Таблицы” в Телеграме: @renat_shagabutdinov
- Наш чат в Телеграме: @t.me/google_spreadsheets_chat
- Оглавление канала — все статьи: https://docs.google.com/spreadsheets/d/1u0aRlwb0rQHbjE9avbgCqIJSQ3EvPfTxT-h54jTQh8I/edit#gid=370845400
- var botToken = ''; //сюда нужно ввести токен
- var webAppUrl = '';
- var telegramUrl = "https://api.telegram.org/bot" + botToken;
- /////
- function mergeBigData(data) {
- return data
- .map(t => t[6] + '––––' + t[9] + '––––' + t[10])
- .join('\n\n')
- }
- function getBigData() {
- return SpreadsheetApp
- .getActive()
- .getSheetByName('обратная связь')
- .getDataRange().getValues();
- }
- function mixerBigData(msg) {
- msg = msg.split(',');
- date1 = new Date(('2015-' + msg[0] + 'T00:00:00'));
- date2 = new Date(('2015-' + msg[1] + 'T00:00:00'));
- return data = getBigData().filter(y => (new Date(y[6]).getTime() >= date1.getTime())
- && (new Date(y[6]).getTime() <= date2.getTime()))
- }
- function doPost(e) {
- //парсим объет, который пришёо
- e = JSON.parse(e.postData.contents)
- const msg = e['message']['text'];
- const fromId = e['message']['from']['id']
- const fromUsername = e['message']['from']['username']
- //логируем в таблицу
- SpreadsheetApp.getActive()
- .getSheetByName('логи').appendRow([new Date(), JSON.stringify(e)])
- //список юзернеймов телеграма, которым вы разрешили использовать функционал бота
- const trueList = ['namokonov', 'namokonov', 'namokonov'];
- //проверяем, правильный ли юзернейм написал
- if (trueList.includes(fromUsername)) {
- // проверяем присланное сообщение, пусть метрикой будет наличие запятой
- if (/\,/.test(msg)) {
- //кажется всё ок - отправляем пользоователя ответ
- //собираем наше сообщение и отправляем по 4096 символов –
- //(максимум для отправкм в телеграме
- var messages = mergeBigData(mixerBigData(msg))
- sendMessage(fromId, message = messages.slice(0, 4095))
- }
- };
- }
- function setWebhook() {
- var response = UrlFetchApp.fetch(telegramUrl + '/setWebhook?url=' + webAppUrl);
- Logger.log(response.getContentText());
- }
- function deleteWebhook() {
- var response = UrlFetchApp.fetch(telegramUrl + '/deleteWebhook?url=' + webAppUrl);
- Logger.log(response.getContentText());
- }
- function sendMessage(chatId, message, parse_mode = 'html') {
- return UrlFetchApp.fetch(telegramUrl + '/sendMessage', {
- method: 'post',
- contentType: 'application/json',
- payload: JSON.stringify({
- chat_id: chatId,
- text: message,
- parse_mode: parse_mode,
- })
- }).getContentText()
- }
Add Comment
Please, Sign In to add comment