Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save alexwer76/a4cc3bc327166e8fdb775f749841836c to your computer and use it in GitHub Desktop.
Save alexwer76/a4cc3bc327166e8fdb775f749841836c to your computer and use it in GitHub Desktop.
Отправка из гугл таблицы в телеграмм по времени
let botToken='1356037801:AAG8tzLp03DIhпр48jZ-MHC3NNGOF6QFjM4'//токен бота
let webAppUrl='https://script.google.com/macros/s/AKfycbxK945bZlFW_8rrtPt0XmkVyN7ra0ELuUZHyOeR9zvOPcDxUGxu/exec'//id таблицы
let telegramUrl = "https://api.telegram.org/bot" + botToken;
function setWebhook(){
var url = telegramUrl + "/setWebhook?url=" + webAppUrl;
var response = UrlFetchApp.fetch(url);
Logger.log(response)
}
function deleteWebhook(){
var url = telegramUrl + "/deleteWebhook?url=" + webAppUrl;
var response = UrlFetchApp.fetch(url);
Logger.log(response)
}
function send_function() {
let SSID='1hIluCP_jCrkk77dknYsErwemRPbr_CwwlU9OLPzU' //id гугл таблицы
let employeeName = "Отправить";
let udate_list=SpreadsheetApp.flush()
let sheet = SpreadsheetApp.getActive().getSheetByName("Прозвон");
sheet.getRange('E2').setValue(' ')
.setValue('')
.setValue(' ')
.setValue('');
let range = sheet.getRange(`G1:G${sheet.getLastRow()}`);
values = range.getValues();
let re = employeeName
let matchedRanges = [];
values.reduce((acc, v, i) => {
if (v[0].search(re) !== -1) {
acc.push(i+1) }
return acc }, matchedRanges)
for (let i = 0; i < matchedRanges.length; i++){
let bk=[]; let ck=[]; let ek=[]; let fk=[]; let ak=[]; let hk=[];
bk[i]= sheet.getRange("B"+ matchedRanges[i]).getValue()
ck[i]= sheet.getRange("C"+ matchedRanges[i]).getValue();
ek[i]= sheet.getRange("E"+ matchedRanges[i]).getValue()
fk[i]= sheet.getRange("F"+ matchedRanges[i]).getDisplayValue();
let fsms="😎 -- "+bk[i]+"\n"+"➯ -- "+ck[i]+"\n"+"📢 -- "+ek[i]+"\n"+"⏰ -- "+fk[i];
//формируем с ним сообщение
let payload = {
'method': 'sendMessage',
'chat_id': /*'507582922',*/'-1001300743919',//id чата телеграмм
'text': fsms,
'parse_mode': 'HTML'
}
let data = {
"method": "post",
"payload": payload
}
UrlFetchApp.fetch('https://api.telegram.org/bot' + botToken + '/', data );
let gk=[];
hk[i]=sheet.getRange("H"+ matchedRanges[i]).clearContent()
gk[i]= sheet.getRange("G"+ matchedRanges[i]).setFormula('=IF(H'+ matchedRanges[i]+'="Повторно";"Отправить";"Отправлено")');
}
return matchedRanges
}
function sort() {
let sheet = SpreadsheetApp.getActive().getSheetByName("Прозвон");
let Avals = sheet.getRange("A1:A").getValues();
Alast = Avals.filter(String).length;
sheet.getRange("F"+Alast).setFormula('=IF(D'+Alast+'<>""; Index(SPLIT(D'+Alast+';" ";;);2);"")');
sheet.getRange("G"+Alast).setFormula('=IF(D'+Alast+'<>"";IF(NOW()>=$D'+Alast+';"Отправить";"В ожидании");"")');
let range = sheet.getRange(`A2:G${sheet.getLastRow()}`);
range.sort({column: 4, ascending: false});
sheet.getRange('F:F').setNumberFormat('H:mm:ss');
sheet.getRange('B:H').setHorizontalAlignment('center')
.setVerticalAlignment('middle');
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('D3').activate();
var conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
conditionalFormatRules.splice(conditionalFormatRules.length - 1, 1, SpreadsheetApp.newConditionalFormatRule()
.setRanges([spreadsheet.getRange('D2:D'+Alast)])
.whenFormulaSatisfied('=INT($D2)<>INT(TODAY())')
.setFontColor('#CC0000')
.build());
spreadsheet.getActiveSheet().setConditionalFormatRules(conditionalFormatRules);
}
@alexwer76
Copy link
Author

Для начала сделать форму для внесения данных
https://docs.google.com/spreadsheets/d/17lJmQkHqax1SidkQDUSmuG5ar22rYWt797MLWud2HAY/edit#gid=781797256
пример

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment