דלגו לתוכן
WbizTool

מדריכי מוצר

מפתחות API ו-Client ID

מפתח API מאפשר לתוכנה שלכם, ולכלים כמו Zapier, ‏n8n, ‏Make והתוסף ל-WordPress, לשלוח הודעות WhatsApp מהמספרים של סביבת העבודה שלכם. הקוד שלכם שולח את המפתח בכותרת Authorization: Bearer; אינטגרציות מבקשות שני ערכים מהדף מפתחות API: ה-Client ID של סביבת העבודה ואחד מהמפתחות שלה. באותו דף נמצא גם הסוד שבו אנחנו חותמים על ה-Webhooks.

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

פתחו את מפתחות API תחת אינטגרציות בסרגל הצד, או עברו אל הגדרות ← מפתחות API.

הלשונית מפתחות API בהגדרות: ה-Client ID‏ 5012 עם הכפתור “העתקה”, המפתחות “חיבור ל-Zapier” ו“אתר החנות” עם תאריכי היצירה שלהם, ארבעת התווים האחרונים של כל מפתח, “העתקת המפתח” ו“מחיקה”, והכפתור “יצירת מפתח” מוקף במסגרת (1)

לכל מפתח מוצגים השם שלו, מתי הוא נוצר (נוצר ב-…), ארבעת התווים האחרונים של המפתח (למשל •••• 7f3a), העתקת המפתח ומחיקה. המפתח החדש ביותר מופיע ראשון.

יצירת מפתח API#

  1. לחיצה על יצירת מפתח

    בדף הגדרות ← מפתחות API, לחצו על יצירת מפתח בפינה השמאלית העליונה של הכרטיס.

  2. מתן שם (לא חובה)

    תחת שם (לא חובה), הקלידו את שם האפליקציה שתשתמש בו, למשל n8n או Website (עד 50 תווים). אם תשאירו את השדה ריק, המפתח יקבל שם כמו "API Key 3", כפי שכתוב ברמז שמתחת לשדה.

  3. יצירה

    לחצו על יצירת מפתח.

    החלון “יצירת מפתח API”: ‏n8n מוקלד תחת “שם (לא חובה)” (2), הרמז על שם ברירת המחדל, והכפתור “יצירת מפתח” מוקף במסגרת (3)
  4. העתקת המפתח

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

    החלון “מפתח ה-API החדש שלכם”: השם n8n, המפתח המלא עם הכפתור “העתקה” מוקף במסגרת (4), ההערה הצהובה “העתיקו אותו עכשיו – לא תוכלו לראות שוב את המפתח המלא”, ו“סיום”
  • עד 10 מפתחות לכל סביבת עבודה. כשיש 10, הכפתור יצירת מפתח אפור, וכשמצביעים עליו מוצג "אפשר להחזיק עד 10 מפתחות API. כדי ליצור מפתח חדש, יש למחוק אחד."
  • המפתחות לא פגים, ואי אפשר לשנות את השם שלהם או לכבות אותם: מפתח עובד עד שמוחקים אותו.
  • מפתח אחד לכל אפליקציה. תנו לכל מפתח את שם האפליקציה שמשתמשת בו, כדי שתוכלו להחליף או למחוק מפתח אחד בלי לשבור את האחרים.
  • איזו סביבת עבודה: מפתח שייך לסביבת העבודה שנבחרה כשיצרתם אותו, וכל בקשה שנשלחת איתו פועלת על סביבת העבודה הזו: על המספרים, ההודעות והתוכנית שלה. כדי לשלוח מסביבת עבודה אחרת, עברו אליה וצרו בה מפתח.

מה להזין באפליקציה שלכם#

שדה ב-APIהשם באינטגרציותאיפה למצוא אותו
client_idClient IDהשורה Client ID בראש הכרטיס של מפתחות ה-API. הכפתור העתקה שלידה מעתיק אותו ("ה-Client ID הועתק."). הוא זהה לכל המפתחות בסביבת העבודה.
api_keyAPI keyהמפתח שהעתקתם: 40 תווים, ספרות והאותיות a עד f.
whatsapp_clientWhatsApp Client IDהמזהה של המספר, למשל מזהה 101 ⧉ בכרטיס שלו בדף מספרי WhatsApp: לחצו עליו כדי להעתיק אותו, או קבלו את כל המספרים עם ה-API לרשימת חשבונות WhatsApp. הוא קובע איזה מספר שולח. ראו הדף מספרי WhatsApp.

איפה מזינים אותם:

  • הקוד שלכם: בכותרת Authorization: Bearer YOUR_API_KEY בכל בקשה (מומלץ). המפתח מציין את סביבת העבודה שלו, ולכן אפשר לוותר על client_id; אם תשלחו אותו, הוא עדיין חייב להיות של סביבת העבודה הזו. ראו שליחת המפתח בכותרת, ואת שליחת הודעה להודעה ראשונה ב-cURL, ‏Python, ‏Node.js ו-PHP.
  • Zapier: ה-Client ID ומפתח ה-API, כשמחברים את החשבון.
  • n8n: השדות Client ID, ‏API Key ו-WhatsApp Client ID ב-credential של WbizTool.
  • Make, ‏Pabbly Connect וכלים אחרים: הגוף של בקשת HTTP.
  • WordPress: בדף WbizTool → Settings, תחת API Configuration.

Google Sheets ו-Shopify מוגדרים בלוח הבקרה ולא צריכים מפתח.

שליחת המפתח בכותרת#

כל endpoint של /api/v1/ מקבל את המפתח בכותרת Authorization, כמו שיעשה גם API v2 שבדרך:

Authorization: Bearer YOUR_API_KEY
  • client_id לא חובה עם הכותרת: המפתח קובע את סביבת העבודה. אם תשלחו גם client_id, הוא חייב להיות ה-Client ID של סביבת העבודה הזו, כמו קודם.
  • שלחו את המפתח במקום אחד. עם הכותרת, השמיטו את api_key מהגוף, או שלחו את אותו מפתח. אם הם שונים, נעשה שימוש במפתח שבכותרת כשהוא מפתח תקף; אם בכותרת יש משהו אחר (למשל טוקן של כלי אחר), נעשה שימוש ב-api_key שבגוף.
  • מפתחות בגוף עדיין עובדים (client_id ו-api_key כ-JSON או כשדות טופס), כך ששום דבר לא משתנה לאפליקציות ולאינטגרציות ששולחות אותם כך. הכותרת עדיפה, כי גוף הבקשה מגיע ללוגים, לשרתי proxy ולהיסטוריה של כלים לבניית טפסים לעתים קרובות יותר מכותרות.
  • שדות טופס, העלאות multipart וגוף JSON עובדים כולם עם הכותרת.
curl -X POST https://wbiztool.com/api/v1/send_msg/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"whatsapp_client": 101, "phone": "919876543210", "msg": "Hello from WbizTool"}'

בדיקת המפתח#

קראו לבדיקת פרטי התחברות (POST /api/v1/me/) עם המפתח שלכם ואם תרצו גם whatsapp_client. התשובה "status": 1 עם "message": "Okay" פירושה שהם עובדים יחד. הבדיקה לא שולחת כלום ולא מנצלת הודעות, אבל היא לא בודקת שנותרו לכם הודעות או שהמספר מחובר.

curl -X POST https://wbiztool.com/api/v1/me/ -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" -d '{"whatsapp_client": 101}'

מפתח שעובד מחזיר {"status": 1, "message": "Okay", "name": "…"}.

העתקה חוזרת של מפתח#

לחצו על העתקת המפתח ליד המפתח. המפתח המלא מועתק ללוח בלי שיוצג בדף; תראו, למשל, ""חיבור ל-Zapier" הועתק.", והכפתור מציג הועתק ✓ לרגע. אין צורך במפתח חדש רק כי איבדתם את הישן.

כדי לברר באיזה מפתח אפליקציה משתמשת, השוו את ארבעת התווים האחרונים של המפתח שלה לרשימה.

מחיקת מפתח#

  1. לחיצה על מחיקה

    לחצו על מחיקה ליד המפתח.

  2. אישור

    החלון "למחוק את "…"?" מזהיר: "כל מה שמשתמש במפתח הזה יפסיק לעבוד מיד: Zaps ב-Zapier, תרחישים ב-n8n וב-Make, התוסף ל-WordPress וקריאות ה-API שלכם. כדאי לתת להם מפתח אחר קודם. אי אפשר לבטל את הפעולה." לחצו על מחיקת המפתח. תופיע ההודעה ""…" נמחק."

מאותו רגע, בקשות עם המפתח הזה מקבלות Auth Error: invalid api key. מה שהוא עשה קודם נשאר: הודעות שהוא הכניס לתור עדיין יוצאות (בטלו אותן בדוחות אם צריך), ותזכורות שהוא יצר ממשיכות לפעול. גם טריגר Incoming WhatsApp Message של Zapier שהוגדר איתו ממשיך לקבל הודעות, כי ה-Webhook שלו כבר מוגדר במספר: כבו את ה-Zap ב-Zapier כדי לעצור אותו.

החלפת מפתח#

החליפו מפתח כשייתכן שהוא דלף, כשמישהו שיכול היה להעתיק אותו עוזב, או מדי פעם. אין כפתור להחלפת מפתח: צרו קודם את המפתח החדש, כדי ששום דבר לא ייעצר בינתיים.

  1. יצירת מפתח חדש

    צרו מפתח והעתיקו אותו. אם יש 10 מפתחות, מחקו קודם אחד שאתם כבר לא משתמשים בו.

  2. עדכון האפליקציות

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

  3. מחיקת המפתח הישן

    מחקו אותו. הוא מפסיק לעבוד מיד.

  4. בדיקת שימוש לרעה (אחרי דליפה)

    עברו על דוחות, חפשו הודעות שלא אתם שלחתם ובטלו את אלה שעדיין ממתינות. בדף תזכורות, מחקו תזכורות שלא יצרתם, כי הן ממשיכות לפעול. הסירו מספרים שלא הוספתם בדף מספרי WhatsApp. עם תוסף Unibox, חפשו בדף מספרים בתיבת ההודעות תג Zapier או Webhook שאתם לא מזהים.

שמירה על המפתחות#

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

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

ה-Client ID לבדו אינו סוד, אבל התייחסו לכל מפתח כמו לסיסמה.

מפתחות API v2#

ל-API v2 יש מפתחות משלו, שיוצרים בכרטיס מפתחות API v2 באותה לשונית. הם בטוחים יותר מהמפתחות שלמעלה:

  • מוצגים פעם אחת. המפתח המלא (wbz_live_…) מוצג רק כשיוצרים אותו; WbizTool שומרת רק טביעת אצבע שלו. אם איבדתם אותו, בטלו את תוקפו וצרו מפתח חדש.
  • רק מה שצריך. סמנו מה המפתח רשאי לעשות (שליחת הודעות, קריאת הודעות, תזכורות, מספרים, מדיה, בדיקת מספרים), הגבילו אותו לחלק מהמספרים שלכם, ואם תרצו, תנו לו תאריך תפוגה.
  • מפתחות בדיקה. מפתח בדיקה (wbz_test_…) בודק כל בקשה כמו מפתח פעיל, אבל לא שולח כלום – לבנייה ולניסוי של אינטגרציה.
  • שימוש אחרון. לכל מפתח מוצג מתי ומאיפה נעשה בו שימוש לאחרונה. ביטול תוקף עוצר אותו מיד, וגם את ה-endpoints של ה-Webhooks שהוגדרו איתו.

המפתחות שלמעלה עובדים רק עם API v1, ומפתחות API v2 רק עם v2. ראו מעבר מ-v1 ל-v2.

חתימות Webhook#

WbizTool חותמת על כל Webhook שהיא שולחת לכם, כדי שה-endpoint שלכם יוכל לוודא שהבקשה באמת הגיעה מאיתנו ולא שונתה בדרך: ה-Webhook של סטטוס ההודעה (נשלחה, נכשלה, בוטלה, פגה), אירועי החיבור של מספרים וה-Webhooks של תיבת ההודעות. הגוף נשאר כמו קודם; נוספות שתי כותרות:

כותרתערך
WbizTool-Timestampמתי שלחנו אותו, בשניות Unix, למשל 1792310400
WbizTool-Signature‏v1=‎ ואחריו ה-HMAC-SHA256 ההקסדצימלי של <timestamp>.<raw body>, שמחושב בסוד החתימה של סביבת העבודה שלכם

החתימה מכסה בדיוק את הבתים שאנחנו שולחים: את שדות הטופס כפי שהם מגיעים, את כל גוף ה-multipart כשמצורפת תמונה של קוד QR, ואת ה-JSON של ה-Webhooks של תיבת ההודעות. מקבלים שמתעלמים מהכותרות ממשיכים לעבוד.

קבלת סוד החתימה#

בדף הגדרות ← מפתחות API, הכרטיס סוד החתימה ל-Webhooks שמתחת למפתחות מציג את ארבעת התווים האחרונים של הסוד, למשל •••• b70d. לכל סביבת עבודה יש סוד אחד לכל ה-Webhooks שלה; הוא נוצר עם ה-Webhook הראשון שאנחנו שולחים לכם.

  1. לחיצה על הצגת סוד חדש

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

  2. העתקת הסוד

    החלון סוד החתימה שלכם ל-Webhooks מציג את הסוד המלא פעם אחת. לחצו על העתקה ושמרו אותו במקום שממנו מקבל ה-Webhooks שלכם יכול לקרוא אותו, למשל במשתנה סביבה. לא תראו אותו שוב: אם תאבדו אותו, צרו סוד חדש.

רק בעלים רואים את הכרטיס. יצירת סוד חדש מחליפה את הישן מיד, ולכן עדכנו את המקבלים שלכם מיד אחר כך; Webhooks שנשלחים בינתיים לא יעברו את הבדיקה שלכם.

אימות Webhook#

חשבו את החתימה מהגוף הגולמי (לפני שה-framework שלכם מפענח אותו), השוו אותה לכותרת בהשוואה בזמן קבוע, ודחו חותמות זמן ישנות מ-5 דקות, כדי שאי אפשר יהיה לשלוח שוב בקשה ישנה:

import hashlib, hmac, time

def verify(secret: str, body: bytes, headers) -> bool:
    ts, sig = headers["WbizTool-Timestamp"], headers["WbizTool-Signature"]
    mac = "v1=" + hmac.new(secret.encode(), ts.encode() + b"." + body, hashlib.sha256).hexdigest()
    return abs(time.time() - int(ts)) < 300 and hmac.compare_digest(mac, sig)

ב-Django העבירו את request.body ואת request.headers; ב-Flask את request.get_data() ואת request.headers.

החזירו 2xx כשהבדיקה עוברת ו-401 כשהיא נכשלת. Webhooks של תיבת ההודעות שיש להם סוד משלהם (סוד ה-Webhook של המספר) ממשיכים לשאת גם את X-Wbiztool-Signature; ‏WbizTool-Signature הוא אותה שיטה בכל Webhook.

פתרון בעיות#

הודעה או בעיהמה לעשות
אין מפתחות API בסרגל הצד או בדף ההגדרותאתם עורכים או אנליסטים בסביבת העבודה הזו. בקשו מאחד הבעלים מפתח, או שיהפוך אתכם לבעלים.
הכפתור יצירת מפתח אפורבסביבת העבודה יש 10 מפתחות. מחקו אחד שאתם כבר לא משתמשים בו.
"ההעתקה נכשלה – הדפדפן חסם את הלוח. נסו שוב."אפשרו בדפדפן גישה ללוח עבור wbiztool.com, או נסו דפדפן אחר. בחלון מפתח ה-API החדש שלכם אפשר גם לסמן את המפתח ולהעתיק אותו בעצמכם.
"לא הצלחנו לקבל את המפתח. נסו שוב."רעננו את הדף ולחצו שוב על העתקת המפתח.
"המפתח הזה כבר נמחק."בעלים אחרים מחקו אותו בינתיים. ברשימה מוצגים המפתחות שנשארו.
ליד מפתח מוצג לא פעילהוא לא עובד. מחקו אותו וצרו מפתח חדש.
Auth Error: invalid api keyהמפתח נמחק או הוקלד בטעות (העתיקו אותו שוב, בלי רווחים), או שה-client_id אינו ה-Client ID של סביבת העבודה הזו.
Auth Error - Please send correct API key and Client idה-api_key חסר או ריק.
Webhook לא עובר את בדיקת החתימה שלכםבדקו מול הגוף הגולמי, ולא מול שדות שפוענחו וקודדו מחדש; השתמשו בסוד הנוכחי (אחרי הצגת סוד חדש רק החדש עובד); ובדקו את השעון של השרת (חותמת זמן שסוטה ביותר מ-5 דקות נדחית).
Auth Errorה-client_id או ה-api_key חסרים, הגוף אינו JSON או שדות טופס, או שהבקשה אינה POST, ב-endpoints כמו שליחה למספרים מרובים, תזמון הודעה וסטטוס הודעה.
Invalid client id., ‏Invalid Client Id, ‏client_id is required או client_id must be a valid integerה-client_id חסר או שאינו מספר כמו 5012. העתיקו אותו מהשורה Client ID.
Invalid WhatsApp Client ID (בדיקת פרטי התחברות) או Invalid whatsapp client … (שליחת הודעה)מזהה המספר לא נמצא בסביבת העבודה של המפתח הזה, או שהמספר הוסר. העתיקו את מזהה … ⧉ מהדף מספרי WhatsApp.
האימייל "אין הודעות מ-… כבר יומיים"סביבת העבודה שלכם שולחת בדרך כלל בכל יום דרך ה-API או דרך אינטגרציה, ובמשך יומיים לא הגיע כלום. האימייל מציין כל מפתח שנוצר או נמחק בשבוע האחרון: בדקו שלאפליקציה עדיין יש מפתח שעובד (ראו התראות).
Invalid API key או Invalid client_id for this API keyה-API לאימות מספרים או ה-API למדיה: המפתח שגוי או נמחק, או שה-client_id לא שייך לסביבת העבודה של המפתח.
This API key is not linked to a workspace. Create a new API key in WbizTool.המפתח מגיע מהגדרת חשבון ישנה. צרו מפתח חדש והשתמשו בו במקומו.
Only workspace owners and editors can connect Zapier triggersאת המפתח יצר מישהו שכבר אינו בעלים או עורך. צרו מפתח חדש וחברו מחדש את Zapier.
Demo Account can not access apisחשבון ההדגמה לא יכול להשתמש ב-API. הירשמו לחשבון משלכם.
Not enough creditsהמפתח עובד, אבל סביבת העבודה בתוכנית החינמית ולא נותרו בה הודעות. ראו תוכניות וחיובים.
הבקשות פועלות על סביבת העבודה הלא נכונההמפתח נוצר בסביבת עבודה אחרת. עברו לסביבת העבודה הנכונה וצרו בה מפתח.

מדריכים קשורים#