рдЙрдореНрд░ рдХреЗ рд╕рд╛рде Google рдХреИрд▓реЗрдВрдбрд░ рдкрд░ рдЬрдиреНрдорджрд┐рди

рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдореИрдВ Google рдХреИрд▓реЗрдВрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЬрдиреНрдо, рд╡рд░реНрд╖рдЧрд╛рдВрда рдпрд╛ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рдордп Google рд╕рдВрдкрд░реНрдХреЛрдВ рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреА рдЖрдпреБ рдХреНрдпреЛрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред



рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рддрд░реАрдХреЗ рд╕реЗ рдЦреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ Google рд╕реЗ рдХреИрд▓реЗрдВрдбрд░ рдкрд░ рдЖрдпреБ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ рдФрд░ рдЕрднреА рднреА рдЗрд╕рдХрд╛ рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рдЙрддреНрддрд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдиреЗ рдореБрдЭреЗ Google Apps рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ред


Google рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрдпреЛрдВ?


рдореИрдВ рдХрд┐рд╕реА рднреА рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдпрд╛ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рд╕рднреА рд╕рдВрдкрд░реНрдХ Google рдкрддрд╛ рдкреБрд╕реНрддрд┐рдХрд╛ рдореЗрдВ рд╣реИрдВред рдореИрдВ рднреА рдПрдХ рдЖрд╡реЗрджрди рдпрд╛ рдРрдб-рдСрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреЛ рдХрд┐ рдореЗрд░реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рдХрд╛рдордХрд╛рдЬреА рд╕рдВрд░рдЪрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред


рдХреЛрдб рдХрд╣рд╛рдВ рд╣реИ?


рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд▓рд┐рдЦреА рдЧрдИ рдереА - рдореИрдВрдиреЗ рдмреНрд░рд╛рдпрди рдкреИрдЯрд░рд╕рди рдХреЗ рдШрдЯрдирд╛рдХреНрд░рдо рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдпрд╛, рдЬреЛ рдХрд┐ 6 рд╕рд╛рд▓ рдкрд╣рд▓реЗ, 2014 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдП рдереЗред


рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ:


рдЬрдиреНрдорджрд┐рди рдФрд░ рд╡рд░реНрд╖рдЧрд╛рдБрда рдЕрдкрдиреЗ Calendar.gs рдХреЗ рд▓рд┐рдП рддрд╛рд░реАрдЦреЛрдВ рдХреЗ рд╕рд╛рде
//   var contactsCal; var defaultCal; var now; var fromDate; var toDate; var events; //  (function() { contactsCal = CalendarApp.getCalendarById('addressbook#contacts@group.v.calendar.google.com'); defaultCal = CalendarApp.getDefaultCalendar(); //       // var defaultCal = CalendarApp.getCalendarById('regrncqXXXXXXp07eihepag74@group.calendar.google.com'); //   now = new Date(); fromDate = new Date(now.getTime()); toDate = new Date(now.getTime() + 31 * (1000 * 60 * 60 * 24)); // + 31     Logger.log(' : ' + Utilities.formatDate(fromDate, 'Asia/Yekaterinburg', 'MMMM dd, yyyy HH:mm:ss Z')); Logger.log(' : ' + Utilities.formatDate(toDate, 'Asia/Yekaterinburg', 'MMMM dd, yyyy HH:mm:ss Z')); events = contactsCal.getEvents(fromDate, toDate); Logger.log(' : ' + events.length); })(); function birthdayAgeToCalendar() { //  for (var i in events) { Logger.log('birthdayAgeToCalendar.  . : ' + events[i].getTitle()); var name = events[i].getTitle().split(" тАУ  ")[0]; var contacts = ContactsApp.getContactsByName(name); Logger.log('birthdayAgeToCalendar.  . Name: ' + name); for (var c in contacts) { var bday = contacts[c].getDates(ContactsApp.Field.BIRTHDAY); var bdayMonthName, bdayYear, bdayDate; try { bdayMonthName = bday[0].getMonth(); bdayYear = bday[0].getYear(); bdayDate = new Date(bdayMonthName + ' ' + bday[0].getDay() + ', ' + bdayYear); Logger.log('birthdayAgeToCalendar. bdayDate: ' + bdayDate); } catch (error) {} var years = parseInt(new Date().getFullYear()) - bdayYear; try { defaultCal.createAllDayEvent(name + " тАУ  , " + years + "  ()", new Date(bdayMonthName + ' ' + bday[0].getDay() + ', ' + new Date().getFullYear())); Logger.log(": " + name + " тАУ  , " + years + "  ()"); } catch (error) {} } } } function anniversaryAgeToCalendar() { // for (var i in events) { Logger.log('anniversaryAgeToCalendar. . : ' + events[i].getTitle()); var name = events[i].getTitle().split("   ")[1]; var contacts = ContactsApp.getContactsByName(name); Logger.log('anniversaryAgeToCalendar. . Name: ' + name); for (var c in contacts) { var bday = contacts[c].getDates(ContactsApp.Field.ANNIVERSARY); //   https://developers.google.com/apps-script/reference/contacts/field var bdayMonthName, bdayYear, bdayDate; try { bdayMonthName = bday[0].getMonth(); bdayYear = bday[0].getYear(); bdayDate = new Date(bdayMonthName + ' ' + bday[0].getDay() + ', ' + bdayYear); Logger.log('anniversaryAgeToCalendar. bdayDate: ' + bdayDate); } catch (error) {} var years = parseInt(new Date().getFullYear()) - bdayYear; try { defaultCal.createAllDayEvent("   " + name + ", " + years + "  ()", new Date(bdayMonthName + ' ' + bday[0].getDay() + ', ' + new Date().getFullYear())); Logger.log(": " + "   " + name + ", " + years + "  ()"); } catch (error) {} } } } function TriggersCreateTimeDriven() { //      // Deletes all triggers in the current project. var triggers = ScriptApp.getProjectTriggers(); for (var i = 0; i < triggers.length; i++) { ScriptApp.deleteTrigger(triggers[i]); } //    ScriptApp.newTrigger("birthdayAgeToCalendar") //  .timeBased() .onMonthDay(1) //  .atHour(1) .create(); ScriptApp.newTrigger("anniversaryAgeToCalendar") // .timeBased() .onMonthDay(1) .atHour(2) .create(); } 

рдХреИрд╕реЗ рдХрд░реЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓?


1. Google рдбрд┐рд╕реНрдХ рдкрд░ рдПрдХ рдирдпрд╛ Google Apps рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ:



2. рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВред


3. рдЯреЗрд╕реНрдЯ "рдмрд░реНрдердПрдЬрдЯреЙрдХреНрд▓реЗрдиреНрдбрд░" рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рдПрдВ - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреИрд▓реЗрдВрдбрд░ рдореЗрдВ рдИрд╡реЗрдВрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧреА, рдЬреЛ рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдореНрд░ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдЧрд╛, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ 31 рджрд┐рдиреЛрдВ (рд▓реЗрдХрд┐рди рдЗрд╕ рд╡рд░реНрд╖) рдореЗрдВ рдЬрдиреНрдорджрд┐рди рд╣реЛрдЧрд╛:



4. рджреЗрдЦреЗрдВ / рд▓реЙрдЧ:



5. рдХреИрд▓реЗрдВрдбрд░ рджреЗрдЦреЗрдВ:



6. рдпрджрд┐ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ, рддреЛ "TriggersCreateTimeDriven" рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рдПрдВ - рдпрд╣ "рдмрд░реНрдердПрдЬреЗрдЯрдЯреЙрдЗрд▓реЗрдВрдбрд░" рдФрд░ "рд╕рд╛рд▓рдЧрд┐рд░рд╣ рдПрдЧреЛрдЯрд╛рд▓реНрдбреЗрдиреНрдбрд░" рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдСрдЯреЛрд╕реНрдЯрд╛рд░реНрдЯ рдПрдХ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд╣рд░ рджрд┐рди рдХреЗ рд▓рд┐рдП рдмрдирд╛рдПрдЧрд╛ред


рдкрд░рд┐рдгрд╛рдо


рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╣реЛрдиреЗ рдкрд░ Google рдХреИрд▓реЗрдВрдбрд░ рдореЗрдВ рдЙрдореНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ Yevgeny Namokonov ( рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ "Google рд╢реАрдЯреНрд╕" ) рдФрд░ рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдЗрд╡рд╛рдиреЛрд╡ рдХреЛ рдЙрдирдХреЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЙрдирдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред


рдЖрдЧреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг GitHub рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред


рдкреЛрд╕реНрдЯ рдХрд░рдиреЗрд╡рд╛рд▓реЗ: рдорд┐рдЦрд╛рдЗрд▓ рд╢рд╛рд░реНрджрд┐рди ,
25 рджрд┐рд╕рдВрдмрд░, 2019

Source: https://habr.com/ru/post/hi481858/


All Articles