@מאיר-מאיר-מאיר
באיזה צורה הכנסת את המספרים לקובץ?
מתעניין בהכל
-
בקשת מידע | הכנסת רשימת טלפונים לקו בימות המשיח -
בעיה | 😪 apps script, מה אני מפספס⁉️@ע-ה-דכו-ע כתב בבעיה |
apps script, מה אני מפספס
️:@מתעניין-בהכל כתב בבעיה |
apps script, מה אני מפספס
️:@ע-ה-דכו-ע כמובן, את זה עשיתי...
חשבתי שכתבת שעדיין לא פרסת את הסקריפט, עכשיו אני מבין שרק את הHTML
הבעיה בדף שהוא לא שולח שום טוקן, למרות שבסקריפט מוגדר בדיקה של טוקן יייחודי.
גם הסקריפטים שלא היה בהם בקשה של טוקן לא עבדו.
-
בעיה | 😪 apps script, מה אני מפספס⁉️@ע-ה-דכו-ע כמובן, את זה עשיתי...
-
בעיה | 😪 apps script, מה אני מפספס⁉️@ע-ה-דכו-ע כתב בבעיה |
apps script, מה אני מפספס
️:איך אתה מנסה להפעיל את זה?
הנה הדף שדרכו אני שולח.
<!DOCTYPE html> <html lang="he" dir="rtl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>סקר</title> <style> body { font-family: "Alef", sans-serif; background-color: #f5f6fa; direction: rtl; text-align: center; padding: 30px; } h1 { color: #2f3640; } .option { display: block; margin: 10px auto; text-align: right; max-width: 300px; } button { background-color: #40739e; color: white; padding: 10px 20px; border: none; border-radius: 6px; cursor: pointer; font-size: 16px; margin-top: 20px; } button:hover { background-color: #487eb0; } #results { max-width: 500px; margin: 40px auto; } #otherText { display: none; margin-top: 8px; width: 80%; padding: 5px; } </style> </head> <body> <h1>שאלת הסקר</h1> <div id="poll-container"> <form id="poll-form"> <label class="option"><input type="radio" name="choice" value="תשובה 1"> תשובה 1</label> <label class="option"><input type="radio" name="choice" value="תשובנ 2"> תשובה 2</label> <label class="option"><input type="radio" name="choice" value="תשובה 3"> תשובה 3</label> <label class="option"><input type="radio" name="choice" value="תשובה 4"> תשובה 4</label> <label class="option"><input type="radio" name="choice" value="תשוהה 5"> תשובה 5</label> <label class="option"><input type="radio" name="choice" value="תשובה 6"> תשובה 6</label> <label class="option"><input type="radio" name="choice" value="אחר" id="otherOption"> אחר:</label> <input type="text" id="otherText" placeholder="כתוב תשובתך..." /> <button type="submit" style="font-size:18px; font-weight:bold; padding:10px 20px;"> שלח הצבעה<br> <small style="font-size:12px; font-weight:normal;">שים ♥️ לאחר השליחה לא ניתן לשנות הצבעה</small> </button> </form> </div> <div id="results" style="display:none;"> <h2>תוצאות הסקר</h2> <canvas id="resultsChart"></canvas> </div> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> const SCRIPT_URL = "URL לא apps script"; // החלף בקישור ה־Deploy שלך const form = document.getElementById("poll-form"); const pollContainer = document.getElementById("poll-container"); const resultsDiv = document.getElementById("results"); const otherOption = document.getElementById("otherOption"); const otherText = document.getElementById("otherText"); document.querySelectorAll('input[name="choice"]').forEach(r => { r.addEventListener('change', () => { otherText.style.display = otherOption.checked ? 'block' : 'none'; }); }); form.addEventListener("submit", async (e) => { e.preventDefault(); const selected = document.querySelector('input[name="choice"]:checked'); if (!selected) return alert("אנא בחר תשובה"); let answer = selected.value; if (answer === "אחר") { if (!otherText.value.trim()) return alert("אנא ציין תשובתך"); answer = otherText.value.trim(); } try { const res = await fetch(SCRIPT_URL, { method: "POST", body: JSON.stringify({ answer }), headers: { "Content-Type": "application/json" }, }); const data = await res.json(); if (data.status !== "ok") throw new Error(data.message || "שגיאה בשליחה"); localStorage.setItem("voted", "true"); pollContainer.style.display = "none"; showResults(); } catch (err) { alert("אירעה שגיאה בשליחה: " + err.message); } }); async function showResults() { resultsDiv.style.display = "block"; try { const res = await fetch(SCRIPT_URL); const data = await res.json(); const labels = Object.keys(data); const values = Object.values(data); const ctx = document.getElementById("resultsChart").getContext("2d"); new Chart(ctx, { type: "bar", data: { labels, datasets: [{ label: "כמות הצבעות", data: values, backgroundColor: "rgba(64,115,158,0.7)" }] }, options: { responsive: true, plugins: { legend: { display: false } }, scales: { y: { beginAtZero: true } } } }); } catch (err) { alert("לא ניתן לטעון תוצאות כרגע."); } } if (localStorage.getItem("voted") === "true") { pollContainer.style.display = "none"; showResults(); } </script> </body> </html> -
בעיה | 😪 apps script, מה אני מפספס⁉️@ע-ה-דכו-ע
אני פותח את זה בדפדפן (אני עורך ב "עורך טקסט ") .
ב. סליחה על הבורות אבל למה אתה מתכוון "הפרמטרים הנדרשים"? -
בעיה | 😪 apps script, מה אני מפספס⁉️@ע-ה-דכו-ע כתב בבעיה |
apps script, מה אני מפספס
️:@מתעניין-בהכל כתב בבעיה |
apps script, מה אני מפספס
️:@ע-ה-דכו-ע
לא עובד... לשלוח את הדף ששולח אליו?הוא בטח עדיין יהיה סגור בנטפרי.
אבל אולי תכתוב אותו כאן שנוכל לראות אם הפרמטרים בURL נכונים ומתאימים
א. עדיין לא העליתי את הדף,
ב. אני לא בנטפרי
ג. הכנסתי את ה URL שהופיע לאחר הפריסה -
בעיה | 😪 apps script, מה אני מפספס⁉️@ע-ה-דכו-ע
לא עובד... לשלוח את הדף ששולח אליו? -
בעיה | 😪 apps script, מה אני מפספס⁉️הסקריפט בספויילר
const SHEET_ID = "id של גיליון שיטס"; // עדכן function doPost(e) { try { const data = JSON.parse(e.postData.contents || "{}"); const answer = (data.answer || "").toString().trim(); const token = (data.token || "").toString().trim(); const name = (data.name || "").toString().trim(); const email = (data.email || "").toString().trim(); if (!answer || !token) { return ContentService.createTextOutput(JSON.stringify({status:"error", message:"missing answer or token"})).setMimeType(ContentService.MimeType.JSON); } const ss = SpreadsheetApp.openById(SHEET_ID); // וודא שיש גליון לטוקנים ושם הגליון נקרא "Tokens" let tokensSheet = ss.getSheetByName("Tokens"); if (!tokensSheet) { // צור גליון Tokens עם כותרת אם לא קיים tokensSheet = ss.insertSheet("Tokens"); tokensSheet.appendRow(["Token","Name","Email","Used"]); } // Responses sheet let respSheet = ss.getSheetByName("Responses"); if (!respSheet) { respSheet = ss.insertSheet("Responses"); respSheet.appendRow(["Timestamp","Token","Name","Email","Answer"]); } // קרא את כל הטוקנים (מספיק לגיליונות קטנים/בינוניים) const tokenData = tokensSheet.getDataRange().getValues(); // כולל כותרת let foundRow = -1; for (let i = 1; i < tokenData.length; i++) { if (tokenData[i][0].toString().trim() === token) { foundRow = i + 1; // מספר שורת הגיליון (1-indexed) break; } } if (foundRow === -1) { return ContentService.createTextOutput(JSON.stringify({status:"error", message:"invalid token"})).setMimeType(ContentService.MimeType.JSON); } const usedVal = tokensSheet.getRange(foundRow, 4).getValue(); // עמודה D = Used if (usedVal && usedVal.toString().toLowerCase() === "used") { return ContentService.createTextOutput(JSON.stringify({status:"error", message:"token already used"})).setMimeType(ContentService.MimeType.JSON); } // אופציונלי: בדוק התאמה של שם/אימייל (אם ברצונך לאלץ התאמה) // const registeredName = tokensSheet.getRange(foundRow, 2).getValue().toString().trim(); // if (registeredName && name && registeredName !== name) { ... } // סמן את הטוקן כ־Used ותעד זמן ושם/מייל אם תרצה tokensSheet.getRange(foundRow, 4).setValue("used"); // רשום את ההצבעה ב־Responses respSheet.appendRow([new Date(), token, name, email, answer]); return ContentService.createTextOutput(JSON.stringify({status:"ok"})).setMimeType(ContentService.MimeType.JSON); } catch (err) { return ContentService.createTextOutput(JSON.stringify({status:"error", message: err.message})).setMimeType(ContentService.MimeType.JSON); } } function doGet(e) { try { const mode = (e.parameter.mode || "").toString(); const ss = SpreadsheetApp.openById(SHEET_ID); const sheet = ss.getSheetByName("Responses"); if (!sheet) return ContentService.createTextOutput(JSON.stringify({})).setMimeType(ContentService.MimeType.JSON); const data = sheet.getDataRange().getValues(); const counts = {}; let total = 0; for (let i = 1; i < data.length; i++) { const ans = data[i][4]; // Answer column (E) if (!ans) continue; counts[ans] = (counts[ans] || 0) + 1; total++; } const percentages = {}; for (const k in counts) { percentages[k] = Math.round((counts[k] / total) * 100); } return ContentService.createTextOutput(JSON.stringify(percentages)).setMimeType(ContentService.MimeType.JSON); } catch (err) { return ContentService.createTextOutput(JSON.stringify({status:"error", message: err.message})).setMimeType(ContentService.MimeType.JSON); } }נ.ב. זה אחד מתוך רבים...
-
בעיה | 😪 apps script, מה אני מפספס⁉️@ע-ה-דכו-ע
תודה, בודק.... -
בעיה | 😪 apps script, מה אני מפספס⁉️@רפי-סאם
או אהה עכשיו אני נכנס לפה, לאחר הרבה זמן ואני רואה שהנושא נהיה ממש ויראלי....
א. איפה אני יכול לבדוק את הלוגו בקשות ב apps script ולבדוק האם הבקשות בכלל התקבלו?
ב. תודה רבה לכל העוזרים והמסייעים.ג. אני לא בנטפרי.
אם זה נחוץ אני אשתף את הסקריפט, (בהתחלה לא שלחתי כי חשבתי שלא יהיה למישהו כח לעבור על זה, אבל אני רואה שאנשים פה מאוד מאוד אוהבים לעזור,

) -
בעיה | 😪 apps script, מה אני מפספס⁉️@יוסף-אלחנן השאלה היא
א. האם התקלה יכולה להיות טמונה במיקום ספציפי בקוד תמיד, (פרט שידוע ש gpt מזניח) או לא?
ב. האם באמת התקלה בטוח בסקריפט ולא בדף אצלי, כי הוא לא מסכים אפילו לשלוח, השאלה אם הוא מתייחס לתשובה של apps script או לא?
ג. לפי מה שידוע לי בקודים קצרים gpt מתמודד מעולה, בקודים ארוכים הוא מתחיל להסתבך ולאבד פרטים?! -
בעיה | 😪 apps script, מה אני מפספס⁉️שלום וברכה אני מנסה כבר תקופה ארוכה ליצור סקריפטים ב apps script על ידי gpt, בדרך כלל דף אינטרנט שפונה לסקריפט, אבל תמיד הסקריפט לא עובד, מופיע לי "שגיאה בשליחת הבקשה,"
לאחר שעות בכל פעם מחדש, שאני משנה דברים פורס 10 פעמים, מוחק, משחזר, פותח, וסוגר, וכו' וכו' וכו' בסוף הסקריפט מסכים לעבוד,שאלתי מופנית אליכם רבותיי המומחים, האם יש משהו שאני מפספס? האם יש חלק מסויים שצריך לשים לב אליו בצורה מיוחדת? אשמח תשאירו את עיני, ואם צריך לפרט יותר מה הקוד מה הסקריפט וכו' פשוט תגידו...
תודה רבה מראש .