• שדרוג אתר הניהול - חוו"ד המשתמשים

    נעוץ נעול
    1
    35 הצבעות
    1 פוסטים
    2k צפיות
    אין תגובות
  • תקנון קטגוריית עזרה הדדית

    נעוץ נעול הועבר
    1
    16 הצבעות
    1 פוסטים
    2k צפיות
    אין תגובות
  • 2 הצבעות
    3 פוסטים
    25 צפיות
    ד
    @מ.ל.ל כתב: @דורש-3 לא הבנתי אם זה על קבוצה בלבד או על כל שיחה שיש לי עם משתמש ? שאלה מצוינת. התשובה הקצרה: זה עובד בדיוק אותו דבר, כי בגוגל צ'אט גם שיחה פרטית עם משתמש בודד היא בעצם חלל (Space), רק מסוג אחר. קבוצה היא חלל מסוג SPACE, ושיחה פרטית אחד על אחד היא חלל מסוג DIRECT_MESSAGE. מרגע שיש לכם את המזהה של החלל הפרטי, כל שאר המנגנון זהה, אותה בדיקה מחזורית ואותה תגובה. ההבדל היחיד הוא איך משיגים את המזהה של השיחה הפרטית, ואיך מטפלים בכמה שיחות במקביל. נסביר את שניהם. איך משיגים את מזהה השיחה הפרטית עם משתמש מסוים יש שתי דרכים. הדרך הפשוטה: שהמשתמש פשוט ישלח הודעה ראשונה לחשבון הבוט. מרגע שהוא כתב, לבוט כבר יש שיחה פתוחה איתו, ואתם יכולים לראות את מזהה השיחה. אפשר לראות אותו בכתובת של הדפדפן כשפותחים את השיחה, בדיוק כמו שמצאנו את מזהה הקבוצה. הדרך התכנותית: לתת לקוד למצוא או לפתוח את השיחה לבד, לפי מזהה המשתמש. מזהה המשתמש נראה כמו users ואחריו מספר ארוך, והוא מופיע בשדה sender של כל הודעה שאותו אדם כותב. הנה פונקציה שמוצאת את השיחה הפרטית עם משתמש נתון, ואם אין עדיין שיחה, פותחת אחת: // מחזירה את מזהה השיחה הפרטית עם משתמש מסוים (users/1234...) function getDmSpace(userId) { const token = ScriptApp.getOAuthToken(); // קודם מנסים למצוא שיחה קיימת const find = UrlFetchApp.fetch( 'https://chat.googleapis.com/v1/spaces:findDirectMessage?name=' + encodeURIComponent(userId), { headers: { Authorization: 'Bearer ' + token }, muteHttpExceptions: true }); if (find.getResponseCode() === 200) { return JSON.parse(find.getContentText()).name; // spaces/XXXX } // אם אין - פותחים שיחה חדשה עם המשתמש const setup = UrlFetchApp.fetch('https://chat.googleapis.com/v1/spaces:setup', { method: 'post', contentType: 'application/json', headers: { Authorization: 'Bearer ' + token }, payload: JSON.stringify({ space: { spaceType: 'DIRECT_MESSAGE' }, memberships: [{ member: { name: userId, type: 'HUMAN' } }] }), muteHttpExceptions: true }); if (setup.getResponseCode() === 200) { return JSON.parse(setup.getContentText()).name; } console.log('לא הצלחתי לפתוח שיחה', setup.getContentText()); return null; } איך גורמים לבוט לענות לכמה שיחות פרטיות במקביל הטריק היחיד שצריך לשים לב אליו הוא נקודת ההתחלה. בגרסת הקבוצה שמרנו חותמת זמן אחת בשם last. כשיש כמה שיחות, צריך חותמת זמן נפרדת לכל שיחה, אחרת הן ידרסו אחת את השנייה. פותרים את זה פשוט על ידי שמירת החותמת עם מפתח שכולל את מזהה השיחה. הנה גרסה של הלולאה הראשית שעוברת על רשימת חללים, קבוצות או שיחות פרטיות, ומטפלת בכל אחת בנפרד: // רשימת החללים שהבוט מאזין להם - אפשר לערבב קבוצות ושיחות פרטיות const SPACES = [ 'spaces/PASTE_GROUP_ID', // קבוצה 'spaces/PASTE_DM_ID' // שיחה פרטית עם משתמש מסוים ]; function checkAll() { for (const space of SPACES) { checkOneSpace(space); } } function checkOneSpace(space) { const props = PropertiesService.getScriptProperties(); const key = 'last_' + space; // חותמת זמן נפרדת לכל חלל const last = props.getProperty(key); if (!last) { props.setProperty(key, new Date().toISOString()); return; } const res = Chat.Spaces.Messages.list(space, { pageSize: 15, orderBy: 'createTime desc' }); const fresh = (res.messages || []).filter(m => m.createTime > last); if (!fresh.length) return; props.setProperty(key, fresh[0].createTime); fresh.reverse(); for (const m of fresh) { if (isSelf(m)) continue; const t = (m.text || '').trim(); if (!t) continue; // בשיחה פרטית לרוב לא צריך מילת הפעלה, כי כל הודעה מכוונת לבוט const answer = ask(t); if (answer) postTo(space, answer); } } // כמו post מהמדריך, רק שמקבל לאיזה חלל לכתוב function postTo(space, text) { UrlFetchApp.fetch('https://chat.googleapis.com/v1/' + space + '/messages', { method: 'post', contentType: 'application/json', headers: { Authorization: 'Bearer ' + ScriptApp.getOAuthToken() }, payload: JSON.stringify({ text: text }), muteHttpExceptions: true }); } שימו לב לשני דברים. ראשון, את הטריגר של הדקה מפנים עכשיו לפונקציה checkAll במקום לפונקציה של חלל בודד. שני, בשיחה פרטית בדרך כלל מוותרים על מילת ההפעלה, כי כל הודעה בשיחה אחד על אחד ממילא מכוונת לבוט, אז אפשר פשוט לענות על הכל. בקבוצה כן משאירים מילת הפעלה כדי שהבוט לא יתפרץ לכל שיחה. מכשול אחד ששווה לדעת עליו מראש בפתיחת שיחה פרטית יזומה מצד הבוט, כלומר כשהבוט הוא זה שמתחיל את השיחה עם מישהו שעדיין לא כתב לו, יש מגבלות תלוי בסוג החשבון וההגדרות. הדרך היציבה ביותר, שכמעט תמיד עובדת, היא שהמשתמש ישלח לבוט הודעה אחת ראשונה. מאותו רגע השיחה קיימת, הבוט רואה אותה, ויכול לענות לה חופשי. אם אתם בונים את זה למשפחה או לקבוצה סגורה, פשוט תבקשו מכל אחד לכתוב לבוט שלום פעם אחת בהתחלה, וזהו. בקיצור, אין הבדל מהותי בין קבוצה למשתמש בודד. שניהם חללים, ואותו קוד מטפל בשניהם. ההבדל היחיד הוא מאיפה משיגים את המזהה, ולשמור חותמת זמן נפרדת לכל שיחה.
  • 2 הצבעות
    64 פוסטים
    738 צפיות
    י
    @cubase האם תוכל לעשות החלפת ערכים שבמקום סימן ה= שבין הערכים, יוסיף לדוגמה שתי פסיקים?
  • הקריין החדש

    9
    0 הצבעות
    9 פוסטים
    173 צפיות
    ו
    מה באמת הכללים בזה? כל שלוחה הוא מקריא בקול אחר. יש אחד שעשו אותו טוב.
  • שיתוף| קבצי אקסל עם שאלות לקליקי🎉✨

    6
    0 הצבעות
    6 פוסטים
    37 צפיות
    R
    @lavitoren-הטי-ל לא לעלות שאלות פתוחות כאן זה יספאים את האשכול, לעלות רק מאגרי שאלות בקובץ אקסל שתואם לתצורה של קליקי
  • המודלים של קו בקליק עדיין קיימים?

    1
    0 הצבעות
    1 פוסטים
    18 צפיות
    אין תגובות
  • הערות ותגובות על האינדקס של מודלי API

    8
    2 הצבעות
    8 פוסטים
    744 צפיות
    א
    @יעקב-יצחק עודכן
  • פרמטר לא נשלח בשלוחת API

    נפתר
    3
    0 הצבעות
    3 פוסטים
    29 צפיות
    א
    @יהודה-צ.-כ. נכנסתי ללוג API של ימות המשיח, והוא לא כותב שהוא שלח את זה כשיו אני רואה שבאמת שלחתי פרמטר שגוי, אבל מעניין שלא רואים אותו בלוג
  • 4 הצבעות
    23 פוסטים
    303 צפיות
    ה
    מטורף, אבל יש לי שתי נקודות: אין תמיכה ב-TTS אפשר גם לעשות שליחת הודעה כתובה תיכנס למערכת בתור TTS (קובץ הקראה)
  • וירטואל פלוס

    5
    1 הצבעות
    5 פוסטים
    132 צפיות
    נ
    שודרג
  • שלוחת מכירה פומבית

    12
    2 הצבעות
    12 פוסטים
    184 צפיות
    ל
    @שמול כתב: @לימוד-בתורת-מרן @נועם-אלימלך זה מספר טלפון שלו, אבל זה שירשור ישן לפני 3 חודשים מה קרה פתאום? אני יודע אבל למה להתקשר יש פה פורום של הגדרות למה במספר טלפון?
  • ניתוביה

    10
    0 הצבעות
    10 פוסטים
    34 צפיות
    ש
    @הדיבל-המעופף כתב: @נועם-אלימלך (אלא אם זה על ידי הטריק של הועידה) מה ההגדרות? איך עושים כזה דבר?
  • הקלטה

    לא נפתר
    17
    0 הצבעות
    17 פוסטים
    37 צפיות
    ש
    @נועם-אלימלך הוא כתב שיש קומבינה הוא לא פרסם את זה אם תדבר אתו ואולי הוא יוכל לעזור לך אולי לא
  • לא נמאס לכם מהודעות "למעבר למערכת הקישו אחת" שממלאות את התא הקולי?

    לא נפתר
    5
    1 הצבעות
    5 פוסטים
    63 צפיות
    ש
    @יעקב-יצחק כתב: לא נמאס לכם מהודעות "למעבר למערכת הקישו אחת" שממלאות את התא הקולי? נמאס ונמאס לנו מאוד! אבל בשביל לבטל את זה צריך לעשות פיתוח פרטי וזה מתחיל רק מ3000 ש"ח אז לא נראה לי שזה רלונטי... תוכל לראות כאן
  • שלוחה להרשמה לצינתוקים

    19
    0 הצבעות
    19 פוסטים
    110 צפיות
    י
    @החסיד כתב: יש לי קו מקצועי באנגלית שאני רוצה להגדיר בה שלוחת צינתוקים, אבל ההודעות מערכת לצינתוקים באנגלית זה כל כך גרוע שאני לא נותן את האפשרות הזאת, רק בשביל זה! ניתן גם להחליף את השפה בשלוחה בודדת @החסיד כתב: חמש דולר לכל הודעה אם זה קו מקצועי, לא שווה לך?
  • תגובות הטי"ל

    93
    2 הצבעות
    93 פוסטים
    203 צפיות
    ל
    @lavitoren-הטי-ל מה הפורום קו? ותגיד כמה דקות יש לרבי יעקב וכן בחודש האחרון לא התעסקתי בזה לא היה לי זמן
  • תגובות למודל התכתבות עם המאזינים דרך המייל

    73
    3 הצבעות
    73 פוסטים
    484 צפיות
    א
    @פישל Spoiler אשמח שתשלח מייל
  • תגובות 💻📠 מחולל השלוחות "יהונייסען מערכות"

    4
    1 הצבעות
    4 פוסטים
    73 צפיות
    L
    @לימוד-בתורת-מרן רעיון מצויין אבל אני לא מבין בזה כלל וכלל (בAPI) אז אינני יודע לחבר שרתים וכו אז אם מישהו פה יודע לעשות זאת בהצלחה! Spoiler שתזכה לעלות ולהתעלות בעבודת השם בהצלחה רבה אשריך!!!!!!!!!!
  • מענה ישיר לצינתוק

    לא נפתר
    9
    0 הצבעות
    9 פוסטים
    35 צפיות
    ש
    @שלמה-צ אז בעצם אתה שואל עכשיו איך מגדירים שלאחר קבלת הצינתוק ברגע שחוזרים למערכת מנותבים לשלוחה פנימית?