איך לשלוח הודעת ווטסאפ מ Python

21/06/2020

בזכות twilio שליחת הודעות sms וגם ווטסאפ מתוך תוכנת מחשב מעולם לא היתה פשוטה יותר. בואו נראה תוכנית Python פשוטה איתה שלחתי לעצמי הודעת ווטסאפ. קודם הקוד, אחרי זה הסבר עליו ובסוף הרחבות ומחירים.

1. קוד: איך שולחים הודעת WhatsApp מתוך Python

התוכנית הבאה שולחת אליי הודעה כל פעם שאפעיל אותה:

from twilio.rest import Client

account_sid = 'ACa75c132b0167cd4b24a289c9fb41572b'
auth_token = '...'
client = Client(account_sid, auth_token)

message = client.messages.create(
                              from_='whatsapp:+14155238886',
                              body='Your appointment is coming up on July 21 at 3PM',
                              to='whatsapp:+972542204344'
                          )

זה כמעט עובד - רק מחקתי את ה auth_token שלי כדי לשמור אותו בסוד. אל תדאגו כל מה שצריך בשביל לקבל אחד הוא לפתוח חשבון Twilio משלכם.

הקוד עצמו אחרי ה import-ים מורכב משורה מרכזית אחת: השורה שקוראת ל client.messages.create. הפרמטרים אומרים ל twilio איך נראית ההודעה, מספר השולח ומספר הנמען וזה הכל.

2. מה, זה כל כך פשוט? לא ממש

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

נתחיל עם מספר השולח - ווטסאפ ו Twilio עובדים יופי ביחד אבל בשביל להכניס את מספר הטלפון האמיתי שלכם אתם צריכים חשבון Twilio אמיתי שיהיה מחובר לחשבון הפייסבוק שלכם. פתיחת חשבון מותנית בהגדרת אמצעי תשלום והפקדה של סכום מינמלי של 20$. מחיר להודעת ווטסאפ הוא בסביבות 10 אגורות להודעה אז תצטרכו לחשוב טוב אם זה משתלם לכם. בכל מקרה אחרי שמגדירים את כל החשבונות תוכלו להכניס בשדה ה from_ את מספר הטלפון האמיתי שלכם והוא זה שיופיע לנמענים על הצג.

לגבי מספר היעד גם כאן אין בעיה לשלוח הודעה לכל מספר ווטסאפ בתנאי שהפקדתם כסף בחשבון ושחיברתם את כל החוטים בין Twilio ל Facebook.

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

Your appointment is coming up on {{1}} at {{2}}

אגב שתי התבניות האחרות בחשבון הניסיון של Twilio הן:

Your {{1}} code is {{2}}
Your {{1}} order of {{2}} has shipped and should be delivered on {{3}}. Details: {{4}}

אפשר להוסיף תבניות נוספות אבל הן חייבות להתאים לכללים של ווטסאפ:

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

  2. אסור לבקש מידע אישי מהמשתמשים.

  3. אסור לפרסם או להציע פרומושנים (גם לא קופונים או מתנות בחינם).

  4. אסור לאיים.

ויש עוד המון כללים קטנים שדילגתי עליהם. אתם יכולים למצוא את הרשימה המלאה בקישור כאן https://developers.facebook.com/docs/whatsapp/message-templates/guidelines.

3. מה הלאה

למרות המגבלות שליחת הודעות WhatsApp דרך Twilio היא תהליך ממש פשוט. ה API גם מאפשר הגדרה של Web Hooks להודעות נכנסות כך שאתם יכולים לכתוב בוט מלא ששולח הודעה ללקוח להודיע על סטטוס עיסקה שבוצעה, ויכול לענות על שאלות לגבי אותה עיסקה.

אם אתם רוצים לקחת את הצעד ולהתחיל לשלוח הודעות למרות העלות היחסית גבוהה, אתם יכולים להירשם ל Twilio דרך הקישור הבא ואז גם אני אקבל כמה גרושים כדי לשלוח הודעות לעולם:

www.twilio.com/referral/VMcX3B

ואם אתם רוצים לבנות יחד בוט ב Flask שגם שולח הודעות ווטסאפ, גם מקבל בחזרה את התשובות וממשיך את השיחה עם המשתמשים - נו, הרגע מצאתם את הפרויקט שתכתבו ב Python Bootcamp שמתחיל עוד פחות מחודש. עכשיו רק נשאר להירשם: https://tocode.ravpage.co.il/python.