בקשת מידע | סקריפט ליצירת אנשי קשר בגוגל
-
@צבי-התותח
אני הייתי ממליץ להתקשקש קצת עם chat gpt
הוא יכול לבנות לך את הסקריפט
רק בזהירות עם הסקריפט כי לא תמיד הוא עושה את העבודה -
@צבי-התותח אוכל לפתח בתשלום pnhspnhs29@gmail.com
-
@צבי-התותח מצורף קוד שכתבתי פעם למישהו שמייצא את האירועים מיומן לגיליון גוגל שיטס
function exportCalendarEventsToSheet() { let calendarId = 'iw.jewish#holiday@group.v.calendar.google.com'; let sheetName = 'אירועים'; let calendar = CalendarApp.getCalendarById(calendarId); if (!calendar) { Logger.log('לא נמצא יומן עם המזהה הנתון'); return; } let events = calendar.getEvents(new Date('2000-01-01T00:00:00Z'), new Date('2100-01-01T00:00:00Z')); let spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); let sheet = spreadsheet.getSheetByName(sheetName) || spreadsheet.insertSheet(sheetName); sheet.clear(); sheet.getRange(1, 1).setValue('איידי'); sheet.getRange(1, 2).setValue('כותרת האירוע'); sheet.getRange(1, 3).setValue('תיאור'); sheet.getRange(1, 4).setValue('תאריך יצירה'); sheet.getRange(1, 5).setValue('יוצר האירוע'); let rowNum = 2; for (var i = 0; i < events.length; i++) { let event = events[i]; sheet.getRange(rowNum, 1).setValue(event.getId()); sheet.getRange(rowNum, 2).setValue(event.getTitle()); sheet.getRange(rowNum, 3).setValue(event.getDescription()); sheet.getRange(rowNum, 4).setValue(event.getDateCreated()); sheet.getRange(rowNum, 5).setValue(event.getCreators()); rowNum++; } Logger.log('הארועים נרשמו בהצלחה בגיליון'); }
אתה צריך לשנות בשורה 2 לכתובת האמיתית של היומן שלך, ובשורה 3 לרשום את שם הגיליון בגוגל שיטס שאליו יוכנסו הנתונים, כל הנתונים הקיימים בו יימחקו.
זה לא מחלץ אוטומטית מהתיאור מספרי טלפון ושמות לקוחות, זה מצריך כתיבת קוד/ביטוי רגולרי מתאים לתבנית הנתונים שלך, וכן זה לא יותר אנש"ק. תוכל לפנות ל@מנצפכ שייפתח לך את זה בתשלום אם זה ממש חשוב לך..
-
@דער-צדיק-נסתר כתב בבקשת מידע | סקריפט ליצירת אנשי קשר בגוגל:
אני הייתי ממליץ להתקשקש קצת עם chat gpt
הוא יכול לבנות לך את הסקריפטלדעתי פחות מומלץ למי שאין לו בכלל הבנה בכתיבת קוד.
-
הצלחתי להגיע עם 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; }
-
ברוך השם הצלחתי. מצ"ב הקוד המעודכן שעובד עם התאריכים
// הרשאות גוגל אנשי קשר 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); } }