תוכנות סקריפט גוגל ליצירת אנשי קשר

עיצובN

משתמש צעיר
עיצוב גרפי
היי שלום

יש לי אירועים רבים [מדובר על אירועים של כמה שנים] ביומן גוגל שבכל אחד מהם רשום בתחילת האירוע שם הלקוח ובהמשך בין המלל יש את מספר / מספרי הטלפון.

הצלחתי להגיע עם chat gpt לקוד שעובד מצויין בשבילי.
הבעיה שזמן ריצת הסקריפט מוגבל לשש דקות והוא לא מספיק לעשות הכל.
ניסיתי לחלק את זה למנות ולשחק עם התאריכים, כל פעם טווח של כמה חודשים. אבל משום מה הסקריפט לא מתייחס לטווח התאריכים הוא כל פעם מתחיל מהתחלה, גם מתאריכים שלפני הטווח.
מצ"ב הסקריפט [הסימני שאלה הם כביכול הנתונים שלי, אני לא בטוח שחייבים את כל הקטע הראשון לדעתי עובד גם בלי, אבל לא חשוב כעת].
אודה למי שיוכל לעזור לי.

קוד:
// הרשאות גוגל אנשי קשר
var CONTACTS_SCOPE = 'https://www.googleapis.com/auth/contacts';
 
// קוד OAuth2
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>.');
}
 
// פונקציה לבדיקה האם אדם כבר קיים
function personExists(customerName) {
    var contacts = ContactsApp.getContactsByName(customerName);
    return contacts.length > 0;
}
 
// פונקציה ליצירת איש קשר
function createContact(customerName, phoneNumbers) {
    // יצירת איש קשר חדש
    var newContact = ContactsApp.createContact(customerName, '', '');
 
    // הוספת מספרי טלפון
    for (var j = 0; j < phoneNumbers.length; j++) {
        newContact.addPhone(ContactsApp.Field.MOBILE_PHONE, phoneNumbers[j]);
    }
 
    Logger.log('נוצר איש קשר חדש: ' + customerName);
}
 
// פונקציה למציאת מספרי טלפון בטקסט
function findPhoneNumbers(text) {
    var phoneNumberMatches = text.match(/\d{10}/g);
    return phoneNumberMatches ? phoneNumberMatches : [];
}
 
// הפעלת התהליך
function processEvents() {
    // קבל את הלוח של המשתמש
    var calendar = CalendarApp.getDefaultCalendar();
 
    // קבל את כל האירועים מהלוח
    var startDate = new Date('2016-03-15T00:00:00Z');  // תאריך התחלה
    var endDate = new Date('2016-12-31T23:59:59Z');    // תאריך סיום
 
    // סינון אירועים לפי טווח תאריכים
    var eventsInRange = calendar.getEvents(startDate, endDate);
 
    // לולאה על כל אירוע בטווח התאריכים
    for (var i = 0; i < eventsInRange.length; i++) {
        var event = eventsInRange[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;
}
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קלז

א עַל נַהֲרוֹת בָּבֶל שָׁם יָשַׁבְנוּ גַּם בָּכִינוּ בְּזָכְרֵנוּ אֶת צִיּוֹן:ב עַל עֲרָבִים בְּתוֹכָהּ תָּלִינוּ כִּנֹּרוֹתֵינוּ:ג כִּי שָׁם שְׁאֵלוּנוּ שׁוֹבֵינוּ דִּבְרֵי שִׁיר וְתוֹלָלֵינוּ שִׂמְחָה שִׁירוּ לָנוּ מִשִּׁיר צִיּוֹן:ד אֵיךְ נָשִׁיר אֶת שִׁיר יְהוָה עַל אַדְמַת נֵכָר:ה אִם אֶשְׁכָּחֵךְ יְרוּשָׁלִָם תִּשְׁכַּח יְמִינִי:ו תִּדְבַּק לְשׁוֹנִי לְחִכִּי אִם לֹא אֶזְכְּרֵכִי אִם לֹא אַעֲלֶה אֶת יְרוּשָׁלִַם עַל רֹאשׁ שִׂמְחָתִי:ז זְכֹר יְהוָה לִבְנֵי אֱדוֹם אֵת יוֹם יְרוּשָׁלִָם הָאֹמְרִים עָרוּ עָרוּ עַד הַיְסוֹד בָּהּ:ח בַּת בָּבֶל הַשְּׁדוּדָה אַשְׁרֵי שֶׁיְשַׁלֶּם לָךְ אֶת גְּמוּלֵךְ שֶׁגָּמַלְתְּ לָנוּ:ט אַשְׁרֵי שֶׁיֹּאחֵז וְנִפֵּץ אֶת עֹלָלַיִךְ אֶל הַסָּלַע:
נקרא  23  פעמים

לוח מודעות

למעלה