ברוך השם הצלחתי. מצ"ב הקוד המעודכן שעובד עם התאריכים
// הרשאות גוגל אנשי קשר
var CONTACTS_SCOPE = 'https://www.googleapis.com/auth/contacts';
var contactsService = OAuth2.createService('contacts')
.setAuthorizationBaseUrl('https://accounts.google.com/o/oauth2/auth')
.setTokenUrl('https://accounts.google.com/o/oauth2/token')
.setClientId('?')
.setClientSecret('?')
.setCallbackFunction('authCallback')
.setPropertyStore(PropertiesService.getUserProperties())
.setScope(CONTACTS_SCOPE);
function authCallback(request) {
try {
var authorized = contactsService.handleCallback(request);
if (authorized) {
return HtmlService.createHtmlOutput('ההרשאה ניתנה בהצלחה!');
} else {
return HtmlService.createHtmlOutput('ההרשאה נדחתה. אנא נסה שוב.');
}
} catch (error) {
Logger.log('Error in authCallback: ' + JSON.stringify(error));
return HtmlService.createHtmlOutput('שגיאה במהלך ההרשאה. נא לבדוק את קובץ הלוג לקבלת מידע נוסף.');
}
}
function authorizeContacts() {
var authorizationUrl = contactsService.getAuthorizationUrl();
return HtmlService.createHtmlOutput('<a href="' + authorizationUrl + '" target="_blank">הקלק כאן כדי לאשר את ההרשאה של אנשי קשר</a>.');
}
// קבל את הלוח של המשתמש
var calendar = CalendarApp.getDefaultCalendar();
// קבל את כל האירועים מהלוח
var events = calendar.getEvents(new Date("2018-12-01"), new Date("2019-12-31"));
// שהייה בין קריאות לשירות
Utilities.sleep(1000); // 1 שניות
// לולאה על כל אירוע
for (var i = 0; i < events.length; i++) {
var event = events[i];
// קבל את כותרת האירוע (שם הלקוח ומספרי הטלפון)
var eventTitle = event.getTitle();
// חלק את כותרת האירוע לשם הלקוח ומספרי הטלפון
var eventTitleParts = eventTitle.split(" ");
var customerName = eventTitleParts.slice(0, 2).join(" "); // שתי המילים הראשונות
var phoneNumbers = findPhoneNumbers(eventTitle); // מצא את מספרי הטלפון מתוך הכותרת
Logger.log('Event Title: ' + eventTitle);
Logger.log('Customer Name: ' + customerName);
Logger.log('Phone Numbers: ' + phoneNumbers.join(', '));
// אם יש שם לקוח ולפחות מספר טלפון
if (customerName && phoneNumbers.length > 0) {
// בדיקה אם האדם כבר קיים
var personExists = checkIfPersonExists(customerName);
// יצירת איש קשר
createContact(customerName, phoneNumbers, personExists);
Logger.log('Event Title: ' + eventTitle);
Logger.log('Customer Name: ' + customerName);
Logger.log('Phone Numbers: ' + phoneNumbers.join(', '));
// שהייה בין קריאות לשירות
Utilities.sleep(1000); // 1 שניות
}
}
// בדיקה אם האדם כבר קיים
function checkIfPersonExists(customerName) {
var contacts = ContactsApp.getContactsByName(customerName);
return contacts.length > 0;
}
// מצא מספרי טלפון בטקסט והחזר אותם במערך
function findPhoneNumbers(text) {
var phoneNumberMatches = text.match(/\d{10}/g);
return phoneNumberMatches ? phoneNumberMatches : [];
}
// יצירת איש קשר ב-Google Contacts
function createContact(customerName, phoneNumbers, personExists) {
if (personExists) {
// האדם כבר קיים, הוסף מספרי טלפון
var contact = ContactsApp.getContactsByName(customerName)[0];
for (var i = 0; i < phoneNumbers.length; i++) {
contact.addPhone(ContactsApp.Field.MOBILE_PHONE, phoneNumbers[i]);
}
Logger.log('התווספו מספרי טלפון לאיש הקשר: ' + customerName);
} else {
// האדם לא קיים, יצירת איש קשר חדש
var newContact = ContactsApp.createContact(customerName, '', '');
for (var j = 0; j < phoneNumbers.length; j++) {
newContact.addPhone(ContactsApp.Field.MOBILE_PHONE, phoneNumbers[j]);
}
Logger.log('נוצר איש קשר חדש: ' + customerName);
}
}