תגובה: מודול הרשמה לרשימת תפוצה
-
@אA כתב בתגובה: מודול הרשמה לרשימת תפוצה:
@עידו
ניסיתי כל מה שהצעת ולא עובד.
עם הקוד שהבאת משום מה אין בכלל רישום של ריצה.
מה שהוא הביא כן רץ, אבל יש שגיאה.

תנסה ככה
function doGet(e) { let email = e.parameter.P050; let name = e.parameter.Phone; let method = e.parameter.method; let tavit = 'רשימת תפוצה'; const validate = validateemail(email); if (!validate) { Logger.log(`fake mail submitted...`); let result = { email: false, existed: false, created: false }; return ContentService.createTextOutput(JSON.stringify(result)) .setMimeType(ContentService.MimeType.JSON); } // הסרה if (method == 'remove') { try { let contact = ContactsApp.getContact(email); if (!contact) { return ContentService.createTextOutput(JSON.stringify({ removed: false })) .setMimeType(ContentService.MimeType.JSON); } else { contact.deleteContact(); Logger.log(`user remove himself from list`); return ContentService.createTextOutput(JSON.stringify({ removed: true })) .setMimeType(ContentService.MimeType.JSON); } } catch (err) { return ContentService.createTextOutput(JSON.stringify({ removed: false, error: err.message })) .setMimeType(ContentService.MimeType.JSON); } } // הוספה/עדכון let found; try { found = ContactsApp.getContact(email); } catch (err) { found = null; } if (!found) { Logger.log(`address: ${email}. not found. creating contact as '${name}'`); let group = ContactsApp.getContactGroup(tavit); ContactsApp.createContact('', name, email).addToGroup(group); return ContentService.createTextOutput(JSON.stringify({ email: true, existed: false, created: true })) .setMimeType(ContentService.MimeType.JSON); } // עדכון שם Logger.log(`address: ${email}. found, updating name to '${name}'`); found.setFullName(name); return ContentService.createTextOutput(JSON.stringify({ email: true, existed: true, created: false })) .setMimeType(ContentService.MimeType.JSON); } function validateemail(email) { if (!email) return false; const re = /^(([^<>()[]\\.,;:\s@"]+(\.[^<>()[]\\.,;:\s@"]+)*)|(".+"))@(([[0-9]{1,3}(\.[0-9]{1,3}){3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(String(email).toLowerCase()); }אני לא מתעסק עם זה כרגע, פשוט שם בבינה מלאכותית וזו התשובה.
-
@אA זה בעייתי... חלק מהפונקציות שקשורות לאנשי קשר כבר לא קימות
-
@עידו
כי שינו הגדרות?! -
@אA כי גוגל שינו את הספריה הזו
-
@עידו
אז זה לא יעבוד.
הבינה לא שינתה את הקוד?
אולי היא תוכל לתת קוד חדש.
האמת שלמעשה אני צריך את זה בכלל לקבוצות גוגל, רק חשבתי לנסות ולהוציא מאנשי קשר לקבוצות. -
@אA ניסיתי כמה פעמים ושינתה למשהו אחר והייתי צריך להתעסק עם auth0 אומשהו כזה התחלתי אבל אין לי זמן לזה...
-
פוסט זה נמחק! -
@עידו תעדכן שראת ואמחוק מכאן את הקישור
-
@עידו
ראיתי -
התגובה שתקבלת ({"email":false,"existed":false,"created":false}) נובעת מכך שהקוד שלך בודק תקינות אימייל, אבל הפרמטר ששלחת (*****Phone=050) לא כולל כתובת אימייל.
ב־Web App שלך הקוד מחפש את הפרמטר P050 (שהוא supposed להיות האימייל):
let email = e.parameter.P050;
אם לא נשלח ערך תקין ב־P050, הפונקציה validateEmail(email) תחזיר false, ולכן התוצאה היא בדיוק מה שראית.
מה צריך לתקן כדי שהבקשה תצליח:
שלח אימייל תקין בפרמטר P050. לדוגמה:
שמור על הפרמטר Phone עבור השם של איש הקשר, כפי שהקוד שלך עושה:
let name = e.parameter.Phone;
הפרמטר method יכול להיות add או remove.
זה נכון?
-
@אA לא נכון
-
@עידו
כמו שחשבתי.
אז הוא שינה חלק משמעותי -
@אA כן מאוד