איך אני מקבל מידע מאתר חדשות?
-
זה אותה שאלה ששאלת לא מזמן.
כדי לדעת את התשובה אחת ולתמיד אתה חייב לוודא שרכשת ידע בשלבים מקדימים, כלומר לדעת כל אחד מהדברים הבאים:
א. להבדיל בין צד לקוח לצד שרת
ב. לכתוב קוד צד שרת שמשיג את המידע בין בAPI ובין בדרכים פשוטות יותר
ג. לשלוח נתונים מצד השרת לצד הלקוח.אם אתה עוד לא יודע את אחד הדברים האלה, שאל פה ללא היסוס, ויעזרו לך בע"ה.
אתה חייב קודם לגמור לדעת אותם לפני התשובה לשאלה שלך הנוכחית.אם אתה כבר יודע אותם, אז אפשר להתקדם: באיזה צד שרת מדובר? כלומר מה שפת הקוד ו/או הפלטפורמה שעומדים לרשותך?
-
א. אני חושב שכן. צד שרת באמצעות Backend.
ב. באמצעות import {fetch} from 'wix-fetch' ?
ג. כנ"ל. אני מייבא את זה. כלומר אני יודע איך להפעיל פונקצייה שתפעל בצד השרת ותחזיר לי את זה לצד לקוח, אני משתמש בזה לאימות של גוגל, ולשליחת מידע למסד נתונים בחנויות.אם אלו לא תשובות הנכונות. אז לא יודע.
שפת הקוד wixcorvid
-
ואגב, (לא יודע אם זה יהיה שימושי למקרה הזה ספציפי..)
אבל https://github.com/RSS-Bridge/rss-bridge יכול להועיל בהרבה מקריםלאתרים גדולים ומוכרים בעיקר.. אבל אולי תכתוב לו bridge משלך למה שאתה צריך.. תעזור לעולם.
-
@אבי-203 זה נראה שאתה אכן בשלב המתאים (למעט תשובה ג' שלא לגמרי ברורה, זה נראה שאתה מכיר דברים מוכנים אבל לא מספיק השתפשפת בזה).
עריכה: אני כעת מבין למה - crovid מטשטשת לגמרי את ההבדל בין צד לקוח לשרת כי אפשר לטפל באירועי לקוח בצד שרת ולהיפך - להזין נתונים באלמנטים בצד לקוח בקוד של צד השרת. טוב אז זה חיה בפני עצמה.אז בא נלך לצד השרת, תתחיל לעשות פונקציה שמשתמשת ב fetch ומקבלת את דף הבית למשל של האתר הזה:
export function buttonTestFetch_click(event) { fetch("https://tchumim.com/", {method: 'get'}) .then(response => response.text()) .then(txt => $w("#someElement").text = txt.match(/<title>([^<]+)</)[1]) ); }
-
@dovid אמר באיך אני מקבל מידע מאתר חדשות?:
.then(txt => $w("#someElement").text = txt.match(/<title>([^<]+)</)[1]) );
קצת ערבבתי. אז אולי בגלל זה אני טועה.
בצד לקוח כתבתי כךimport { buttonTestFetch } from 'backend/site'; export function button62_click(event) { let submitRequestData = { "url": $w('#input12').value } buttonTestFetch(submitRequestData) .then((log) => { console.log(log); }) }
בצד שרת כתבתי כך
export function buttonTestFetch_click(submitRequestData) { fetch(submitRequestData.url, {method: 'get'}) .then(response => response.text()) .then(txt => { let log = (txt.match(/<title>([^<]+)</)[1]) return (log) ; }) }
זה מה שמדפיס לי:
TypeError: (0 , _site.buttonTestFetch) is not a function
-
אופס!
עכשיו אני שם לב שזה טעות שלי שהעתקתי את הקוד שלך בדיוק, ולפי מה ששינתי השתנה גם שם הפונקצייה.export function buttonTestFetch(submitRequestData) { fetch(submitRequestData.url, {method: 'get'}) .then(response => response.text()) .then(txt => { let log = (txt.match(/<title>([^<]+)</)[1]) return (log) ; }) }
ככה זה הנכון.
עכשיו אין לי את השגיאה.
אלא שהוא מדפיס לי כעת undefined
אולי זה כבר בעיה פשוטה בקוד?תודה בכל אופן.