דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • בהיר
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • כהה
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. עזרה הדדית - מחשבים וטכנולוגיה
  4. שיתוף | שליחת וקבלת הודעות וואטסאפ פון באינטרנט, בעיצוב זהה לזה של וואטסאפ, פתוח בנטפרי

שיתוף | שליחת וקבלת הודעות וואטסאפ פון באינטרנט, בעיצוב זהה לזה של וואטסאפ, פתוח בנטפרי

מתוזמן נעוץ נעול הועבר עזרה הדדית - מחשבים וטכנולוגיה
258 פוסטים 38 כותבים 11.5k צפיות 31 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • DHOC979D מנותק
    DHOC979D מנותק
    DHOC979
    כתב נערך לאחרונה על ידי DHOC979
    #126

    סקריפט:

    /**
     * contacts-appsscript.gs
     * ----------------------
     * סקריפט Google Apps Script המשמש כתחליף עצמאי ל-SheetDB עבור אתר ההקלטות (Xnet):
     * קורא וכותב ישירות לגיליון Google Sheets שהוא מותקן עליו, בלי תלות בשירות חיצוני.
     *
     * === התקנה ===
     * 1. בגיליון Google Sheets (חדש או קיים), ודאו ששורת הכותרות הראשונה של הטאב הרלוונטי
     *    (ר' SHEET_NAME למטה) היא בדיוק:
     *      SystemKey | ContactId | Name | Phone | PhotoUrl | UpdatedAt
     * 2. בתפריט הגיליון: Extensions ← Apps Script.
     * 3. מוחקים את כל הקוד הקיים בקובץ Code.gs, ומדביקים במקומו את כל התוכן של הקובץ הזה.
     * 4. שומרים (Ctrl+S).
     * 5. Deploy ← New deployment ← בוחרים סוג (גלגל שיניים) "Web app".
     *      - Execute as: Me
     *      - Who has access: Anyone
     *    ואז "Deploy".
     * 6. מעתיקים את הכתובת (URL) שמתקבלת - היא מסתיימת ב-/exec - ומדביקים אותה באתר,
     *    בשדה "כתובת API לאנשי קשר", כשמקור אנשי הקשר מוגדר ל"סקריפט Google Sheets עצמאי".
     *
     * === הערת אבטחה ===
     * בדיוק כמו ב-SheetDB, כל מי שמכיר את כתובת ה-Web App הזו (וטוקן מערכת תקין) יכול
     * לקרוא ולכתוב לשורות ששייכות לאותו טוקן. זה אותה רמת הגנה כמו שהייתה קודם ולא פחות
     * ולא יותר - אין כאן אימות משתמשים אמיתי. אם עדכנתם קוד זה בעצמכם, שימו לב לא לפרסם
     * את כתובת ה-Web App במקום גלוי.
     *
     * אם תרצו לעדכן את הקוד בעתיד (Deploy מחדש): כדי שכתובת ה-/exec הקיימת תמשיך לעבוד,
     * יש לבחור ב-Deploy ← Manage deployments ← לערוך (עיפרון) את הפריסה הקיימת ולבחור
     * "New version", ולא ליצור פריסה (deployment) חדשה - אחרת תקבלו כתובת חדשה ותצטרכו
     * לעדכן אותה מחדש בהגדרות האתר.
     */
    
    // שם הטאב (הגיליון הפנימי) בתוך קובץ ה-Sheets שבו נמצאת טבלת אנשי הקשר.
    // אם הטאב אצלכם נקרא אחרת - עדכנו כאן בהתאם.
    var SHEET_NAME = 'Sheet1';
    
    var COLUMNS = ['SystemKey', 'ContactId', 'Name', 'Phone', 'PhotoUrl', 'UpdatedAt'];
    
    function getSheet_() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheetByName(SHEET_NAME);
      if (!sheet) {
        throw new Error('לא נמצא גיליון (טאב) בשם "' + SHEET_NAME + '". עדכנו את SHEET_NAME בקוד.');
      }
      return sheet;
    }
    
    // קורא את כל השורות בגיליון ומחזיר אותן כמערך אובייקטים, כולל מספר השורה בפועל
    // (_row) - נדרש כדי שאפשר יהיה לעדכן/למחוק שורה ספציפית בהמשך.
    function readAllRows_(sheet) {
      var values = sheet.getDataRange().getValues();
      if (values.length < 2) return [];
      var header = values[0];
      var idx = {};
      COLUMNS.forEach(function (c) { idx[c] = header.indexOf(c); });
    
      var rows = [];
      for (var r = 1; r < values.length; r++) {
        var row = values[r];
        var systemKey = idx.SystemKey > -1 ? row[idx.SystemKey] : '';
        var contactId = idx.ContactId > -1 ? row[idx.ContactId] : '';
        if (!systemKey && !contactId) continue; // שורה ריקה - מדלגים
        rows.push({
          _row: r + 1, // מספר שורה בגיליון עצמו (1-based, כולל שורת הכותרות)
          SystemKey: systemKey,
          ContactId: contactId,
          Name: idx.Name > -1 ? row[idx.Name] : '',
          Phone: idx.Phone > -1 ? row[idx.Phone] : '',
          PhotoUrl: idx.PhotoUrl > -1 ? row[idx.PhotoUrl] : '',
          UpdatedAt: idx.UpdatedAt > -1 ? row[idx.UpdatedAt] : ''
        });
      }
      return rows;
    }
    
    function jsonOut_(obj) {
      return ContentService
        .createTextOutput(JSON.stringify(obj))
        .setMimeType(ContentService.MimeType.JSON);
    }
    
    // GET - קריאה בלבד: מחזיר את כל שורות אנשי הקשר (כולל שורות שיוך הקלטה, ContactId
    // שמתחיל ב-"rec:") ששייכות ל-SystemKey הנתון. זו הפעולה היחידה שנתמכת דרך GET,
    // בדיוק כמו /search ב-SheetDB.
    function doGet(e) {
      var action = (e && e.parameter && e.parameter.action) || 'search';
      var systemKey = (e && e.parameter && e.parameter.SystemKey) || '';
      if (action !== 'search' || !systemKey) {
        return jsonOut_([]);
      }
      var sheet = getSheet_();
      var rows = readAllRows_(sheet).filter(function (r) {
        return String(r.SystemKey) === String(systemKey);
      });
      var out = rows.map(function (r) {
        return {
          SystemKey: r.SystemKey,
          ContactId: r.ContactId,
          Name: r.Name,
          Phone: r.Phone,
          PhotoUrl: r.PhotoUrl,
          UpdatedAt: r.UpdatedAt
        };
      });
      return jsonOut_(out);
    }
    
    // POST - כתיבה: מקבל גוף בפורמט JSON בצורה { action: 'upsert' | 'delete', row: {...} }.
    // חובה ששדות SystemKey ו-ContactId יהיו קיימים ב-row (הם המפתח הזוגי שמזהה שורה).
    // שימו לב: גוף הבקשה נשלח מהאתר עם Content-Type: text/plain (כדי להימנע מ-CORS
    // preflight) - זה בסדר גמור, עדיין מפענחים אותו כ-JSON רגיל.
    function doPost(e) {
      var body;
      try {
        body = JSON.parse(e.postData.contents);
      } catch (err) {
        return jsonOut_({ ok: false, error: 'invalid JSON body' });
      }
    
      var action = body.action;
      var row = body.row || {};
      if (!row.SystemKey || !row.ContactId) {
        return jsonOut_({ ok: false, error: 'missing SystemKey/ContactId' });
      }
    
      // ננעל למשך הפעולה כדי למנוע התנגשות בין שתי בקשות כתיבה שמגיעות במקביל
      // (למשל שני חברי קבוצה ששומרים איש קשר באותו רגע).
      var lock = LockService.getScriptLock();
      lock.waitLock(10000);
      try {
        var sheet = getSheet_();
        var rows = readAllRows_(sheet);
        var existing = null;
        for (var i = 0; i < rows.length; i++) {
          if (String(rows[i].SystemKey) === String(row.SystemKey) &&
              String(rows[i].ContactId) === String(row.ContactId)) {
            existing = rows[i];
            break;
          }
        }
    
        if (action === 'delete') {
          if (existing) sheet.deleteRow(existing._row);
          return jsonOut_({ ok: true });
        }
    
        if (action === 'upsert') {
          var values = [
            row.SystemKey,
            row.ContactId,
            row.Name || '',
            row.Phone || '',
            row.PhotoUrl || '',
            row.UpdatedAt || new Date().toISOString()
          ];
          if (existing) {
            sheet.getRange(existing._row, 1, 1, COLUMNS.length).setValues([values]);
          } else {
            sheet.appendRow(values);
          }
          return jsonOut_({ ok: true });
        }
    
        return jsonOut_({ ok: false, error: 'unknown action: ' + action });
      } finally {
        lock.releaseLock();
      }
    }
    
    
    מ תגובה 1 תגובה אחרונה
    1
    • DHOC979D DHOC979

      סקריפט:

      /**
       * contacts-appsscript.gs
       * ----------------------
       * סקריפט Google Apps Script המשמש כתחליף עצמאי ל-SheetDB עבור אתר ההקלטות (Xnet):
       * קורא וכותב ישירות לגיליון Google Sheets שהוא מותקן עליו, בלי תלות בשירות חיצוני.
       *
       * === התקנה ===
       * 1. בגיליון Google Sheets (חדש או קיים), ודאו ששורת הכותרות הראשונה של הטאב הרלוונטי
       *    (ר' SHEET_NAME למטה) היא בדיוק:
       *      SystemKey | ContactId | Name | Phone | PhotoUrl | UpdatedAt
       * 2. בתפריט הגיליון: Extensions ← Apps Script.
       * 3. מוחקים את כל הקוד הקיים בקובץ Code.gs, ומדביקים במקומו את כל התוכן של הקובץ הזה.
       * 4. שומרים (Ctrl+S).
       * 5. Deploy ← New deployment ← בוחרים סוג (גלגל שיניים) "Web app".
       *      - Execute as: Me
       *      - Who has access: Anyone
       *    ואז "Deploy".
       * 6. מעתיקים את הכתובת (URL) שמתקבלת - היא מסתיימת ב-/exec - ומדביקים אותה באתר,
       *    בשדה "כתובת API לאנשי קשר", כשמקור אנשי הקשר מוגדר ל"סקריפט Google Sheets עצמאי".
       *
       * === הערת אבטחה ===
       * בדיוק כמו ב-SheetDB, כל מי שמכיר את כתובת ה-Web App הזו (וטוקן מערכת תקין) יכול
       * לקרוא ולכתוב לשורות ששייכות לאותו טוקן. זה אותה רמת הגנה כמו שהייתה קודם ולא פחות
       * ולא יותר - אין כאן אימות משתמשים אמיתי. אם עדכנתם קוד זה בעצמכם, שימו לב לא לפרסם
       * את כתובת ה-Web App במקום גלוי.
       *
       * אם תרצו לעדכן את הקוד בעתיד (Deploy מחדש): כדי שכתובת ה-/exec הקיימת תמשיך לעבוד,
       * יש לבחור ב-Deploy ← Manage deployments ← לערוך (עיפרון) את הפריסה הקיימת ולבחור
       * "New version", ולא ליצור פריסה (deployment) חדשה - אחרת תקבלו כתובת חדשה ותצטרכו
       * לעדכן אותה מחדש בהגדרות האתר.
       */
      
      // שם הטאב (הגיליון הפנימי) בתוך קובץ ה-Sheets שבו נמצאת טבלת אנשי הקשר.
      // אם הטאב אצלכם נקרא אחרת - עדכנו כאן בהתאם.
      var SHEET_NAME = 'Sheet1';
      
      var COLUMNS = ['SystemKey', 'ContactId', 'Name', 'Phone', 'PhotoUrl', 'UpdatedAt'];
      
      function getSheet_() {
        var ss = SpreadsheetApp.getActiveSpreadsheet();
        var sheet = ss.getSheetByName(SHEET_NAME);
        if (!sheet) {
          throw new Error('לא נמצא גיליון (טאב) בשם "' + SHEET_NAME + '". עדכנו את SHEET_NAME בקוד.');
        }
        return sheet;
      }
      
      // קורא את כל השורות בגיליון ומחזיר אותן כמערך אובייקטים, כולל מספר השורה בפועל
      // (_row) - נדרש כדי שאפשר יהיה לעדכן/למחוק שורה ספציפית בהמשך.
      function readAllRows_(sheet) {
        var values = sheet.getDataRange().getValues();
        if (values.length < 2) return [];
        var header = values[0];
        var idx = {};
        COLUMNS.forEach(function (c) { idx[c] = header.indexOf(c); });
      
        var rows = [];
        for (var r = 1; r < values.length; r++) {
          var row = values[r];
          var systemKey = idx.SystemKey > -1 ? row[idx.SystemKey] : '';
          var contactId = idx.ContactId > -1 ? row[idx.ContactId] : '';
          if (!systemKey && !contactId) continue; // שורה ריקה - מדלגים
          rows.push({
            _row: r + 1, // מספר שורה בגיליון עצמו (1-based, כולל שורת הכותרות)
            SystemKey: systemKey,
            ContactId: contactId,
            Name: idx.Name > -1 ? row[idx.Name] : '',
            Phone: idx.Phone > -1 ? row[idx.Phone] : '',
            PhotoUrl: idx.PhotoUrl > -1 ? row[idx.PhotoUrl] : '',
            UpdatedAt: idx.UpdatedAt > -1 ? row[idx.UpdatedAt] : ''
          });
        }
        return rows;
      }
      
      function jsonOut_(obj) {
        return ContentService
          .createTextOutput(JSON.stringify(obj))
          .setMimeType(ContentService.MimeType.JSON);
      }
      
      // GET - קריאה בלבד: מחזיר את כל שורות אנשי הקשר (כולל שורות שיוך הקלטה, ContactId
      // שמתחיל ב-"rec:") ששייכות ל-SystemKey הנתון. זו הפעולה היחידה שנתמכת דרך GET,
      // בדיוק כמו /search ב-SheetDB.
      function doGet(e) {
        var action = (e && e.parameter && e.parameter.action) || 'search';
        var systemKey = (e && e.parameter && e.parameter.SystemKey) || '';
        if (action !== 'search' || !systemKey) {
          return jsonOut_([]);
        }
        var sheet = getSheet_();
        var rows = readAllRows_(sheet).filter(function (r) {
          return String(r.SystemKey) === String(systemKey);
        });
        var out = rows.map(function (r) {
          return {
            SystemKey: r.SystemKey,
            ContactId: r.ContactId,
            Name: r.Name,
            Phone: r.Phone,
            PhotoUrl: r.PhotoUrl,
            UpdatedAt: r.UpdatedAt
          };
        });
        return jsonOut_(out);
      }
      
      // POST - כתיבה: מקבל גוף בפורמט JSON בצורה { action: 'upsert' | 'delete', row: {...} }.
      // חובה ששדות SystemKey ו-ContactId יהיו קיימים ב-row (הם המפתח הזוגי שמזהה שורה).
      // שימו לב: גוף הבקשה נשלח מהאתר עם Content-Type: text/plain (כדי להימנע מ-CORS
      // preflight) - זה בסדר גמור, עדיין מפענחים אותו כ-JSON רגיל.
      function doPost(e) {
        var body;
        try {
          body = JSON.parse(e.postData.contents);
        } catch (err) {
          return jsonOut_({ ok: false, error: 'invalid JSON body' });
        }
      
        var action = body.action;
        var row = body.row || {};
        if (!row.SystemKey || !row.ContactId) {
          return jsonOut_({ ok: false, error: 'missing SystemKey/ContactId' });
        }
      
        // ננעל למשך הפעולה כדי למנוע התנגשות בין שתי בקשות כתיבה שמגיעות במקביל
        // (למשל שני חברי קבוצה ששומרים איש קשר באותו רגע).
        var lock = LockService.getScriptLock();
        lock.waitLock(10000);
        try {
          var sheet = getSheet_();
          var rows = readAllRows_(sheet);
          var existing = null;
          for (var i = 0; i < rows.length; i++) {
            if (String(rows[i].SystemKey) === String(row.SystemKey) &&
                String(rows[i].ContactId) === String(row.ContactId)) {
              existing = rows[i];
              break;
            }
          }
      
          if (action === 'delete') {
            if (existing) sheet.deleteRow(existing._row);
            return jsonOut_({ ok: true });
          }
      
          if (action === 'upsert') {
            var values = [
              row.SystemKey,
              row.ContactId,
              row.Name || '',
              row.Phone || '',
              row.PhotoUrl || '',
              row.UpdatedAt || new Date().toISOString()
            ];
            if (existing) {
              sheet.getRange(existing._row, 1, 1, COLUMNS.length).setValues([values]);
            } else {
              sheet.appendRow(values);
            }
            return jsonOut_({ ok: true });
          }
      
          return jsonOut_({ ok: false, error: 'unknown action: ' + action });
        } finally {
          lock.releaseLock();
        }
      }
      
      
      מ מנותק
      מ מנותק
      מוגן
      כתב נערך לאחרונה על ידי
      #127

      @DHOC979 איפה שמים בדיוק את הסקריפט הזה?

      DHOC979D תגובה 1 תגובה אחרונה
      0
      • מ מוגן

        @DHOC979 איפה שמים בדיוק את הסקריפט הזה?

        DHOC979D מנותק
        DHOC979D מנותק
        DHOC979
        כתב נערך לאחרונה על ידי
        #128

        @מוגן אתה נכנס לטבלה בשיטס, לוחץ על תוספים, אפסקרפיט, ואז אתה מכניס את הקוד, שומר, לוחץ פריסה, פריסה חדשה, מאשר גישה, מעתיק את כתובת הURL הכחולה ומכניס אותה בתיבה הייעודית באתר הוואטסאפון

        א 2 תגובות תגובה אחרונה
        0
        • DHOC979D DHOC979

          @מוגן אתה נכנס לטבלה בשיטס, לוחץ על תוספים, אפסקרפיט, ואז אתה מכניס את הקוד, שומר, לוחץ פריסה, פריסה חדשה, מאשר גישה, מעתיק את כתובת הURL הכחולה ומכניס אותה בתיבה הייעודית באתר הוואטסאפון

          א מנותק
          א מנותק
          אאA
          כתב נערך לאחרונה על ידי
          #129

          @DHOC979
          זה מה שעשיתי ובשמירה כותב שיש שגיאה בשמירה

          DHOC979D תגובה 1 תגובה אחרונה
          0
          • DHOC979D DHOC979

            @מוגן אתה נכנס לטבלה בשיטס, לוחץ על תוספים, אפסקרפיט, ואז אתה מכניס את הקוד, שומר, לוחץ פריסה, פריסה חדשה, מאשר גישה, מעתיק את כתובת הURL הכחולה ומכניס אותה בתיבה הייעודית באתר הוואטסאפון

            א מנותק
            א מנותק
            אאA
            כתב נערך לאחרונה על ידי
            #130

            @DHOC979
            cb6fc205-63ec-4a37-aac3-93f11fd83e5e-image.jpeg

            תגובה 1 תגובה אחרונה
            0
            • א אאA

              @DHOC979
              זה מה שעשיתי ובשמירה כותב שיש שגיאה בשמירה

              DHOC979D מנותק
              DHOC979D מנותק
              DHOC979
              כתב נערך לאחרונה על ידי
              #131

              @אאA אני רואה, יתכן נטפרי אבל אני בודק ותכף אעדכן.

              א 4 תגובות תגובה אחרונה
              1
              • DHOC979D DHOC979

                @אאA אני רואה, יתכן נטפרי אבל אני בודק ותכף אעדכן.

                א מנותק
                א מנותק
                אאA
                כתב נערך לאחרונה על ידי
                #132

                @DHOC979
                זו לא אמורה להיות בעיה של נטפרי.
                אלו דברים שאני עושה הרבה

                S תגובה 1 תגובה אחרונה
                0
                • א אאA

                  @DHOC979
                  זו לא אמורה להיות בעיה של נטפרי.
                  אלו דברים שאני עושה הרבה

                  S מנותק
                  S מנותק
                  smct
                  כתב נערך לאחרונה על ידי
                  #133

                  @אאA
                  נטפרי‌​‌‌​‌​​​​​‌ כן בעיקרון חוסמים את השמירה (אבל נראה לי שזה רק אם הקוד פונה לשרת חיצוני, אבל לא בטוח)

                  א תגובה 1 תגובה אחרונה
                  1
                  • S smct

                    @אאA
                    נטפרי‌​‌‌​‌​​​​​‌ כן בעיקרון חוסמים את השמירה (אבל נראה לי שזה רק אם הקוד פונה לשרת חיצוני, אבל לא בטוח)

                    א מנותק
                    א מנותק
                    אאA
                    כתב נערך לאחרונה על ידי
                    #134

                    @smct
                    בדיוק כמו שכתבת

                    תגובה 1 תגובה אחרונה
                    0
                    • DHOC979D DHOC979

                      @אאA אני רואה, יתכן נטפרי אבל אני בודק ותכף אעדכן.

                      א מנותק
                      א מנותק
                      אאA
                      כתב נערך לאחרונה על ידי
                      #135

                      @DHOC979
                      קבל ביטול.
                      עובד!!
                      דרך אגב, זה ממש דבר נוח וגאוני!!!

                      DHOC979D תגובה 1 תגובה אחרונה
                      🙏
                      0
                      • DHOC979D DHOC979

                        @אאA אני רואה, יתכן נטפרי אבל אני בודק ותכף אעדכן.

                        א מנותק
                        א מנותק
                        אאA
                        כתב נערך לאחרונה על ידי
                        #136

                        @DHOC979
                        רק זה עדיין לא נכנס בשיטס

                        תגובה 1 תגובה אחרונה
                        0
                        • א אאA

                          @DHOC979
                          קבל ביטול.
                          עובד!!
                          דרך אגב, זה ממש דבר נוח וגאוני!!!

                          DHOC979D מנותק
                          DHOC979D מנותק
                          DHOC979
                          כתב נערך לאחרונה על ידי
                          #137

                          @אאA אתה בנטפרי ועובד לך?

                          א תגובה 1 תגובה אחרונה
                          0
                          • DHOC979D DHOC979

                            @אאA אתה בנטפרי ועובד לך?

                            א מנותק
                            א מנותק
                            אאA
                            כתב נערך לאחרונה על ידי
                            #138

                            @DHOC979
                            אני בנטפרי.
                            הורדתי את זה כקובץ למחשב.
                            כרגע יש משהו מוזר.
                            הכנסי כתובת סקריפט והוא החל לשמור אבל הוא משתבש.
                            הוא שומר ואז אחרי ריענון נעלם.
                            זה לא נשמר בשיטס עצמו

                            DHOC979D תגובה 1 תגובה אחרונה
                            0
                            • א אאA

                              @DHOC979
                              אני בנטפרי.
                              הורדתי את זה כקובץ למחשב.
                              כרגע יש משהו מוזר.
                              הכנסי כתובת סקריפט והוא החל לשמור אבל הוא משתבש.
                              הוא שומר ואז אחרי ריענון נעלם.
                              זה לא נשמר בשיטס עצמו

                              DHOC979D מנותק
                              DHOC979D מנותק
                              DHOC979
                              כתב נערך לאחרונה על ידי
                              #139

                              @אאA זה נטפרי אני בודק את זה ואעדכן בעז"ה

                              M תגובה 1 תגובה אחרונה
                              1
                              • DHOC979D DHOC979

                                @אאA זה נטפרי אני בודק את זה ואעדכן בעז"ה

                                M מנותק
                                M מנותק
                                MMI
                                כתב נערך לאחרונה על ידי
                                #140

                                @DHOC979 אשמח שיהיה אפשרות שכשיש הודעה חדשה זה יעשה ציפצוף במחשב
                                תודה!

                                DHOC979D תגובה 1 תגובה אחרונה
                                0
                                • M MMI

                                  @DHOC979 אשמח שיהיה אפשרות שכשיש הודעה חדשה זה יעשה ציפצוף במחשב
                                  תודה!

                                  DHOC979D מנותק
                                  DHOC979D מנותק
                                  DHOC979
                                  כתב נערך לאחרונה על ידי
                                  #141

                                  @MMI כתב:

                                  כרגע רק כשהאתר פתוח בדפדפן.

                                  תגובה 1 תגובה אחרונה
                                  1
                                  • א מנותק
                                    א מנותק
                                    אנונימוס...
                                    כתב נערך לאחרונה על ידי
                                    #142

                                    משיהו יודע למה אני לא מצליח להוסיף אנשי קשר הוא תמיד כותב לי שיש שגיאה

                                    DHOC979D תגובה 1 תגובה אחרונה
                                    0
                                    • א אנונימוס...

                                      משיהו יודע למה אני לא מצליח להוסיף אנשי קשר הוא תמיד כותב לי שיש שגיאה

                                      DHOC979D מנותק
                                      DHOC979D מנותק
                                      DHOC979
                                      כתב נערך לאחרונה על ידי
                                      #143

                                      @אנונימוס...
                                      הסיבה שאתה מקבל שגיאה בעת הוספת אנשי קשר היא ככל הנראה משום שלא הגדרת את טורים A, B ו-D בטבלת ה-Google Sheets כ"טקסט רגיל".

                                      כדי לתקן זאת:
                                      בחר את הטורים המתאימים בטבלה.
                                      היכנס לבתפריט ל: "עיצוב" > "מספר" > "טקסט רגיל" (במקום "אוטומטי").
                                      מחק את אנשי הקשר הקיימים והוסף אותו מחדש.

                                      (מתוסף של @ שניאור-שמח פשוט נמאס לי לכתוב כל פעם מחדש)

                                      תגובה 1 תגובה אחרונה
                                      0
                                      • א מנותק
                                        א מנותק
                                        אנונימוס...
                                        כתב נערך לאחרונה על ידי
                                        #144

                                        אני יודע ועשיתי את זה ובכל זאת מופיע לי שגיאה

                                        DHOC979D תגובה 1 תגובה אחרונה
                                        0
                                        • א אנונימוס...

                                          אני יודע ועשיתי את זה ובכל זאת מופיע לי שגיאה

                                          DHOC979D מנותק
                                          DHOC979D מנותק
                                          DHOC979
                                          כתב נערך לאחרונה על ידי
                                          #145

                                          @אנונימוס... שלח את הקונסול

                                          תגובה 1 תגובה אחרונה
                                          0

                                          שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

                                          נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

                                          בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                                          הרשמה התחברות

                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • חוקי הפורום
                                          • פופולרי
                                          • לא נפתר
                                          • משתמשים
                                          • חיפוש גוגל בפורום
                                          • צור קשר