ZiGoomul

Отправка сообщений в телеграмм V2

Feb 17th, 2021 (edited)
3,908
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const ss = SpreadsheetApp.getActiveSpreadsheet();
  2. const token = 'тут ваш токен бота';
  3.  
  4. // получаем лист по имени (start)
  5. const swOrder = ss.getSheetByName("Тут имя листа с заказами");
  6. const swWorkers = ss.getSheetByName("Тут имя листа с Работниками");
  7. // получаем лист по имени (end)
  8.  
  9. // или получаем лист по Id (start)
  10. function getSheetById(id) {
  11.   return SpreadsheetApp.getActive().getSheets().filter(
  12.     function (s) { return s.getSheetId() === id; }
  13.   )[0];
  14. }
  15. // или в новом синтаксисе со стрелочными функциями
  16. const getSheetById = (id) => ss.getSheets().filter(sh => sh.getSheetId() === id)[0];
  17.  
  18. const swOrder = getSheetById(тут id листа 'Заказы');
  19. const swWorkers = getSheetById(тут id листа 'Штат сотрудников');
  20. // получаем лист по Id (end)
  21.  
  22. // отправка в телеграмм из таблицы (start)
  23. function SendTelegram() {
  24.   const ui = SpreadsheetApp.getUi();
  25.   let activeCell = ss.getActiveCell();
  26.   let workers = swWorkers.getRange(2, 1, swWorkers.getLastRow() - 1).getValues();
  27.   let nameManager = activeCell.getValue();
  28.   let flatManager = workers.flat();
  29.   let rowManager = flatManager.indexOf(nameManager) + 2;
  30.   let chatId = swWorkers.getRange(rowManager, 2).getValue();
  31.   let data = swOrder.getRange(activeCell.getRow(), 1, 1, 6).getDisplayValues()[0];
  32.  
  33.   let text = `
  34. 🤑 ${data[1]}
  35. ☎️ ${data[2]}
  36. ℹ️ ${data[3]}
  37.   `
  38.  
  39.   if (activeCell.getColumn() == 5 && activeCell.getRow() > 1 && activeCell.getValue() !== '') {
  40.     let response = ui.alert('Отправить сообщение?', ui.ButtonSet.YES_NO);
  41.     if (response == ui.Button.YES) {
  42.       sendText(chatId, text)
  43.     }
  44.   }
  45. }
  46. // отправка в телеграмм из таблицы (end)
  47.  
  48. // отправка в телеграмм после заполнения формы (start)
  49. function sendTelegram() {
  50.   let lastRow = swOrder.getLastRow();
  51.   let workers = swWorkers.getRange(2, 1, swWorkers.getLastRow() - 1).getValues();
  52.   let nameManager = swOrder.getRange(lastRow,5).getValue();
  53.   let flatManagers = workers.flat();
  54.   let rowManager = flatManagers.indexOf(nameManager) + 2;
  55.   let chatId = swWorkers.getRange(rowManager, 2).getValue();
  56.   let data = swOrder.getRange(lastRow, 1, 1, 5).getDisplayValues()[0];
  57.  
  58.   let text = `
  59. 🤑 ${data[1]}
  60. ☎️ ${data[2]}
  61. ℹ️ ${data[3]}
  62.   `
  63.   sendText(chatId, text)
  64. }
  65. // отправка в телеграмм после заполнения формы (end)
  66.  
  67. function sendText(chatId, text) {
  68.   let data = {
  69.     method: 'sendMessage',
  70.     chat_id: String(chatId),
  71.     text: text,
  72.     parse_mode: 'HTML'
  73.   };
  74.   let options = {
  75.     method: 'post',
  76.     payload: data
  77.   };
  78.   UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/', options)
  79. }
  80.  
Add Comment
Please, Sign In to add comment