Hər səhər motivasion qiymətlərlə özümü Whatsapp-a salıram

Kartik Nighania'nın valideynlərindən Whatsapp'a Python kodunun 20 sətirindən ilham aldı

Darsp Dodiya'nın Unsplash'dəki fotoşəkili

1.0 Giriş

Əvvəlki məqaləmdə İnternetdən sitatlar kəsən bir mikroservis layihəsi qurdum. Bu məqalə həmin layihənin davamıdır. Aşağıda mikroservislər layihəsi ilə əlaqəli məqalələrin siyahısı verilmişdir. Disclaimer: Onlar üzv hekayələr var.

  1. RabbitMQ ilə hadisə idarəedici mikroservislərin qurulması üçün addım-addım təlimat (mikroservislər, arxa tərəf ilə əlaqəli)
  2. Mən RabbitMQ (Heroku) ilə Heroku-ya Mikroservisləri necə yerləşdirirəm
  3. Server Göndərən Hadisələri (real vaxt) istifadə edərək Real-time Veb Tətbiqimi necə inkişaf etdirdim

Bu məqalələr eyni layihəyə aid olsa da, hər biri proqramlaşdırma və proqram mühəndisliyi sahəsində fərqli bir sahəni müzakirə edir. Beləliklə, bu dəfə WhatsApp inteqrasiyasından danışaq.

2.0 Layihə haqqında məlumat

Məqalə, Mən hər səhər WhatsApp'a Valideynlərimə Sətir Yazmışam Python Kodunun cəmi 20 satırında, hər gün səhər saat 8-də tək bir motivasiya təklifi ilə özüm WhatsApp-a olan bu genişləndirməni etməyə ilham verdim. bu məqalədə nail olun.

Bundan əlavə, bu layihənin bir inkişaf etdiricisi və istifadəçisi olaraq veb saytıma girmirəm və əngəl olacaq gündəlik motivasion qiymətləri görmürəm. Daha yaxşı bir UX-ya sahib olmaq üçün kotirovkaları çatdırmaq təcrübəsi ardıcıl olmalıdır.

SMS, e-poçt və ya hətta WhatsAppdan istifadə ideyası olduqca yaxşı bir seçim olacaq.

3.0 Həll Dizayn

Yuxarıda göstərilən xüsusiyyəti çatdırmaq üçün hədəfi uğurla vurmaq üçün bəzi planlaşdırma və düşünmə məşqləri edək. Arxa sonda kodlaşdırmaya başlamazdan əvvəl etməli olduğumuz bir neçə vacib şərt / quraşdırma var.

3.1 Quraşdırma

  • Bir Twilio Sandbox hesabını qeydiyyata alın.
  • Twilio-dan WhatsApp mesajı ala biləcəyim üçün telefon nömrəmi Twilio Sandbox-a daxil edin.

3.2 Geri son

  • Hər gün səhər saat 8-də SendQuoteToSubscriber funksiyasının çağırışını tətil etmək üçün Heroku Planlayıcısı (cron işi) yaradın.
  • Abunəçiyə sındırılmış təklifi yayımlayacaq bir API nöqtəsi yaradın. Bu API deyildikdə aşağıdakı vəzifələri yerinə yetirəcəkdir. - İnternetdən bir təklif alın. - Abonentə təklifi WhatsApp.
  • TwilioService.js adlı bir xidmət komponenti yaradın. Bu komponent Twilio ilə əlaqəli bütün funksiyalardan məsuldur. Ya istədiniz ki, SMS, WhatsApp mesajı və s.

Bu inkişaf etdirməli olduğumuz vəzifələrin bölünmə siyahısı. Növbəti həyata keçirmə hissəsində arxa kod kodlaşdırmasını müzakirə edəcəyik. Bir Twilio quraşdırma ilə əlaqəli bir bələdçi üçün, 1.0 Layihə Fonunda qeyd etdiyim məqalə quraşdırma bələdçisini çox yaxşı müzakirə etdi.

4.0 İcra

TwilioService komponentini yaratmaqla başlayaq.

4.1 Twilio xidməti

Bu xidmət komponenti bu vəzifəni yerinə yetirməlidir.

  • Twilio-ya təklif edən abunəçiyə WhatsApp mesajı göndərmək üçün məlumat verin.

Gist baxımından iki funksiyamız var. Onlar təşəbbüsçü və göndərWhatsappMessage.

  • təşəbbüsçü. Bu, digər hərəkətləri tələb etmək üçün Twilio ilə müştəri əlaqəsi yaratmaqdır. Hər şeyi daha asan və rahat etmək üçün Twilio Node köməkçi kitabxanasından istifadə edirik. Bundan əlavə, Twilio konsolunuz vasitəsilə əldə edə biləcəyiniz hesabSid və authToken tələb edirik.
  • göndərWhatsappMesaj. Bu funksiya mobileNo və sitat olan bir obyekt alır. Daha sonra, Twilio-ya WhatsApp mesajı göndərmək üçün məlumat vermək üçün köməkçi kitabxananın client.messages.create funksiyasından istifadə edirik. Ancaq Twilio'u haradan göndərmək istədiyinizi, kimə göndərmək istədiyinizi və məzmunun nə olduğunu söyləməlisiniz. İşi daxilinə, bədəninə və bədəninə keçirdiyimiz yerdir.

4.2 WhatsApp quote API son nöqtəsini yaradın

İndi WhatsApp mesajı göndərə biləcək işləyən bir twilioService var. Növbəti vəzifə bu funksiyanı nə vaxt icra etməyimizə qərar verir? İndi bunu etmək üçün bir API son nöqtəsi yaradırıq. Heroku Planlayıcısımızın sadəcə təklifi WhatsApp üçün son nöqtəyə HTTP çağırışı edə bilməsi üçün.

server.js əsas ekspress tətbiqetməsini və POST / whatsappQuote son nöqtəsini yaradır. Bu API son nöqtəsi çağırıldıqda, sendQuoteViaWhatsapp funksiyasını yerinə yetirəcəkdir. İndi bu funksiyada nə etdiyimizi görək.

SendQuoteViaWhatsapp üçün ətraflı izahat:

  1. Birincisi, themobileNo açarı olmayan JSON cəsədini gözləyir.
  2. Sonra, scrapQuoteOfTheDay funksiyası ilə internetdən təklifi silmək üçün gedəcəyik.
  3. Sitat aldıqda, WhatsApp-ı telefonumuza göndərmək üçün əvvəllər yazdığımız sendWhatMessage funksiyasını yerinə yetiririk.
  4. Hal-hazırda, API'i atəşə atmaq istəsəniz, WhatsApp-a qiymət təklifi alacaqsınız. Aldığım təklifi görmək üçün aşağıdakı görüntüyə baxın.
Sitat almaq üçün WhatsApp ekran görüntüsü

4.3 Heroku Scheduler (cron iş) yaradın

Mikroservislərim layihəsi Heroku üzərində yerləşdiyindən Heroku'nun başqa bir platforma əvəzinə istədiyimə çatma ehtimalını araşdırıram. Tercih etdiyiniz və ya tanış olduğunuz hər hansı bir platformadan istifadə etməkdə çekinmeyin.

Heroku planlayıcısını yaratmaq, təsəvvür etdiyinizdən daha asandır. Aşağıda bələdçi:

  1. Heroku tətbiq tablosuna gedin. Əlavələr giriş sahəsində Heroku Scheduler axtarın.

2. Heroku Planlayıcısını seçin və təmin edin.

3. İndi işləyən Heroku Scheduleriniz var. Bəs o zaman avtomatlaşdırmağa nə ehtiyacımız var? Hər 24 saatda səhər 8-də WhatsApp Quote API çağırışını avtomatlaşdırmalıyıq. Bunu sadəcə API son nöqtəmizə bir qıvrım əmrini yerinə yetirməklə edirik.

Budur curl əmrinin nümunəsi. Postman'da qıvrım əmrini asanlıqla yarada bilərsiniz, əgər istifadə edirsinizsə, thecurl əmri ilə çox tanış deyilsinizsə, çox çətinlik çəkirsiniz.

curl -X POST \ http://127.0.0.1:8083/whatsappQuote \ -H 'Qəbul et: * / *' \ -H 'Qəbul et-Kodlaşdırma: gzip, deflate' \ -H 'Cache-Control: no-cache' \ -H 'Bağlantı: Yaşamaq' \ -H 'Məzmun-Uzunluğu: 34' \ -H 'Məzmun Tipi: tətbiqi / json' \ -H 'Host: 127.0.0.1:8083' \ -H 'Poçtalyon- Token: f7be2ed4-da7f-4b31-9ead-a78820272fc9,91d8c930-6e69-42fc-8eaf-913b695aa386 '\ -H' İstifadəçi-Agent: PostmanRuntime / 7.15.2 '\ -H' cache-control: no-cache '\ - d '{"mobileNo": "YOUR_MOBILE_NO_REGISTERED_IN_TWILIO_SANDBOX"}'

4. İndi işinizi qurtarın və sabahınızın WhatsApp-a göndərilən motivasiya təklifinizi gözləyin. Ümid edirəm günün bu sitatı həyatınıza dəyər verir.

Nəticə

Twilio inteqrasiyası olduqca asandır və inanıram ki, olduqca tez inkişaf edə bilərsiniz. Ancaq Twilio Sandbox istifadə edərkən bir neçə mənfi cəhət var:

  • Yalnız Twilio Sandbox-da əvvəlcədən təyin edilmiş şablon mesajlarından istifadə edə bilərsiniz.
  • Twilio Sandbox üçün məhdud bir sınaq krediti var, yəni kredit istifadə etdikdən sonra Twilio WhatsApp-dan istifadə edə bilməyəcəyinizə səbəb ola bilər. Ancaq bunun üçün pul ödəməyə hazırsınızsa, sizin üçün çox yaxşı bir həll olardı.

Nəhayət, bu layihəni hazırlayarkən ağla gələn bəzi fikirləri bölüşəcəm:

  • API identifikasiyası və avtorizasiya. Hal hazırda API ictimaiyyət üçün açıqdır və bu olduqca risklidir.
  • E-poçt inteqrasiyası. WhatsApp mesajları göndərmək əla olsa da, bir çox insan mobil nömrəsini asanlıqla açıqlamır. Beləliklə, e-poçt inteqrasiyası daha çox istifadəçi cəlb edə biləcək daha perspektivli bir həll kimi görünür.

Bu layihəyə başladığım gündən bəri araşdıracağım çox şey var. Xoşbəxt inkişaf edir və oxuduğunuz üçün təşəkkür edirəm.