לפני שנעמיק ב-API, נסביר על הודעות פוש באופן כללי, מההתחלה ועד הסוף. בהמשך, כשנעבור על נושאים או ממשקי API ספציפיים, תבינו איך ולמה זה חשוב.
שלושת השלבים העיקריים להטמעת הודעות פוש הם:
- הוספת הלוגיקה בצד הלקוח כדי לרשום משתמש לקבלת הודעות פוש (כלומר, ה-JavaScript וממשק המשתמש באפליקציית האינטרנט שרושמים משתמש לקבלת הודעות פוש).
- קריאה ל-API מהקצה העורפי או מהאפליקציה שמפעילה הודעת פוש למכשיר של המשתמש.
- קובץ ה-JavaScript של Service Worker שיקבל 'אירוע push' כשההתראה תגיע למכשיר. ב-JavaScript הזה תוכלו להציג התראה.
בואו נבחן כל אחד מהשלבים האלה קצת יותר בפירוט.
שלב 1: בצד הלקוח
השלב הראשון הוא 'הרשמה' של משתמש לשליחת הודעות פוש.
כדי להוסיף משתמש למינוי, צריך שני דברים. קודם כל, צריך לקבל הרשאה מהמשתמש לשלוח לו הודעות פוש. דבר שני, קבלת PushSubscription מהדפדפן.
PushSubscription מכיל את כל המידע שדרוש לנו כדי לשלוח הודעת פוש למשתמש.
אפשר להתייחס לזה כאל מזהה של המכשיר של המשתמש.
הכול מתבצע ב-JavaScript באמצעות Push API.
לפני שמצרפים משתמש למינוי, צריך ליצור קבוצה של "מפתחות שרת אפליקציות". נסביר על כך בהמשך.
המפתחות של שרת האפליקציה, שנקראים גם מפתחות VAPID, הם ייחודיים לשרת שלכם. הם מאפשרים לשירות דחיפה לדעת איזה שרת אפליקציות רשם משתמש, ולוודא שזה אותו שרת שמפעיל את הודעות הדחיפה לאותו משתמש.
אחרי שתרשמו את המשתמש ותקבלו PushSubscription, תצטרכו לשלוח את הפרטים של PushSubscription לשרת העורפי. בשרת, תשמרו את המינוי הזה במסד נתונים ותשתמשו בו כדי לשלוח הודעת פוש למשתמש.
שלב 2: שליחת הודעת פוש
כשרוצים לשלוח הודעת פוש למשתמשים, צריך לבצע קריאה ל-API של שירות פוש. קריאה ל-API הזו תכלול את הנתונים לשליחה, את הנמען של ההודעה וכל קריטריון לגבי אופן השליחה של ההודעה. בדרך כלל, הקריאה ל-API הזו מתבצעת מהשרת שלכם.
אלה כמה שאלות שכדאי לשאול את עצמכם:
- מי או מהו שירות הדחיפה?
- איך נראה ה-API? האם זה JSON, XML או משהו אחר?
- מה אפשר לעשות באמצעות ה-API?
מי או מהו שירות הדחיפה?
שירות Push מקבל בקשה לאחזור מהרשת, מאמת אותה ומעביר הודעת Push לדפדפן המתאים. אם הדפדפן אופליין, ההודעה מתווספת לתור עד שהדפדפן יהיה אונליין.
כל דפדפן יכול להשתמש בכל שירות Push שהוא רוצה, ואין למפתחים שליטה על זה. זו לא בעיה כי כל שירות push מצפה לאותה קריאה ל-API. כלומר, לא צריך לדעת מי ספק שירות ה-Push. צריך רק לוודא שהקריאה ל-API תקינה.
כדי לקבל את כתובת ה-URL המתאימה להפעלת הודעת פוש (כלומר, כתובת ה-URL של שירות הפוש), צריך לעיין בערך endpoint ב-PushSubscription.
בהמשך מופיעה דוגמה לערכים שתקבלו מ-PushSubscription:
{
"endpoint": "https://random-push-service.com/some-kind-of-unique-id-1234/v2/",
"keys": {
"p256dh": "BNcRdreALRFXTkOOUHK1EtK2wtaz5Ry4YfYCA_0QTpQtUbVlUls0VJXg7A8u-Ts1XbjhazAkj7I99e8QcYP7DkM=",
"auth": "tBHItJI5svbpez7KI4CCXg=="
}
}
נקודת הקצה במקרה הזה היא https://random-push-service.com/some-kind-of-unique-id-1234/v2/. שירות ה-Push יהיה 'random-push-service.com' וכל נקודת קצה תהיה ייחודית למשתמש, כפי שמצוין ב-'some-kind-of-unique-id-1234'. כשתתחילו לעבוד עם הודעות פוש, תשימו לב לדפוס הזה.
בהמשך נסביר על המפתחות במינוי.
איך נראה ה-API?
ציינתי שכל שירות של הודעות פוש באינטרנט מצפה לאותה קריאה ל-API. ה-API הזה הוא Web Push Protocol. זהו תקן של IETF שמגדיר איך מבצעים קריאה ל-API של שירות Push.
קריאה ל-API דורשת הגדרת כותרות מסוימות, והנתונים צריכים להיות זרם של בייטים. נבדוק ספריות שיכולות לבצע את קריאת ה-API הזו בשבילנו, וגם נסביר איך לבצע אותה בעצמנו.
מה אפשר לעשות באמצעות ה-API?
ה-API מספק דרך לשלוח הודעה למשתמש, עם נתונים או בלי נתונים, ומספק הוראות איך לשלוח את ההודעה.
הנתונים שאתם שולחים עם הודעת פוש חייבים להיות מוצפנים. הסיבה לכך היא שהיא מונעת משירותי Push, שיכולים להיות כל אחד, לצפות בנתונים שנשלחים עם הודעת ה-Push. זה חשוב כי הדפדפן הוא זה שמחליט באיזה שירות פוש להשתמש, וזה עלול לאפשר לדפדפנים להשתמש בשירות פוש שלא בטוח או מאובטח.
כשמפעילים הודעת פוש, שירות הפוש מקבל את קריאה ל-API ומכניס את ההודעה לתור. ההודעה תישאר בתור עד שהמכשיר של המשתמש יתחבר לאינטרנט ושירות הדחיפה יוכל להעביר את ההודעות. ההוראות שאתם יכולים לתת לשירות הדחיפה מגדירות איך הודעת הדחיפה תתווסף לתור.
ההוראות כוללות פרטים כמו:
הזמן שבו ההתראה הפוש פעילה. ההגדרה הזו מגדירה כמה זמן הודעה תמתין בתור לפני שהיא תוסר ולא תימסר.
מגדירים את הדחיפות של ההודעה. האפשרות הזו שימושית אם שירות ה-Push שומר על חיי הסוללה של המשתמשים על ידי שליחת הודעות בעדיפות גבוהה בלבד.
נותנים להודעת פוש שם של 'נושא' שיחליף כל הודעה בהמתנה בהודעה החדשה הזו.
שלב 3: דחיפת האירוע למכשיר של המשתמש
אחרי שאנחנו שולחים הודעת פוש, שירות הפוש שומר את ההודעה בשרת שלו עד שאחד מהאירועים הבאים מתרחש:
- המכשיר מתחבר לאינטרנט ושירות הדחיפה מעביר את ההודעה.
- תוקף ההודעה פג. אם זה קורה, שירות הדחיפה מסיר את ההודעה מהתור שלו והיא לעולם לא תימסר.
כששירות ה-Push מעביר הודעה, הדפדפן מקבל את ההודעה, מפענח את הנתונים ושולח אירוע push ב-service worker.
Service worker הוא קובץ JavaScript 'מיוחד'. הדפדפן יכול להריץ את ה-JavaScript הזה בלי שהדף שלכם יהיה פתוח. הוא יכול להריץ את ה-JavaScript הזה גם כשהדפדפן סגור. לקובץ שירות יש גם ממשקי API, כמו push, שלא זמינים בדף האינטרנט (כלומר, ממשקי API שלא זמינים מחוץ לסקריפט של קובץ שירות).
בתוך אירוע ה-push של service worker, אפשר לבצע משימות ברקע. אתם יכולים לבצע קריאות לניתוח נתונים, לשמור דפים במטמון אופליין ולהציג התראות.
זה כל התהליך של שליחת הודעות Push.
לאן כדאי ללכת
- סקירה כללית של התראות מאפליקציות אינטרנט
- איך פועלות הודעות פוש
- רישום משתמש למינוי
- חוויית משתמש בנושא הרשאות
- שליחת הודעות באמצעות ספריות של דחיפת הודעות מדפי אינטרנט
- Web Push Protocol
- טיפול באירועי Push
- הצגת התראה
- התנהגות של התראות
- דפוסי התראות נפוצים
- שאלות נפוצות בנושא התראות בדחיפה
- בעיות נפוצות ודיווח על באגים