Penulis bahan, terjemahan yang kami terbitkan hari ini, mengatakan bahwa orang modern, yang hidupnya penuh dengan pekerjaan, sering lupa untuk menulis pesan kepada teman dan kerabat mereka. Dia, melihat bagaimana orang tuanya mengirim kutipan inspirasional dan tips kesehatan yang berguna ke WhatsApp setiap pagi, memutuskan bahwa waktunya telah tiba untuk membalas.
Dalam panduan ini, kami akan menulis skrip Python sederhana yang dirancang untuk mengirim pesan WhatsApp. Dalam perjalanan kerja, kita akan menggunakan paket Twilio Python. Untuk mengatur peluncuran skrip setiap hari pada waktu tertentu, kami akan menempatkan kode di cloud.

Salah satu pendekatan untuk memecahkan masalah ini adalah dengan menggunakan paket Selenium Python dan versi web WhatsApp alih-alih layanan Twilio, yang, setelah melelahkan kemungkinan penawaran gratis, perlu dibayar. Tetapi karena bekerja dengan versi web WhatsApp memerlukan pemindaian kode QR secara berkala menggunakan ponsel, itu tidak akan berfungsi untuk mengotomatiskan pengiriman pesan dengan pendekatan ini.
Bekerja pada proyek akan terdiri dari tiga langkah:
- Pengaturan Twilio.
- Belajar dan memodifikasi kode.
- Menyebarkan proyek di cloud dan menyiapkan pemicu.
Langkah 1. Pengaturan Twilio
Buat akun gratis di situs web
Twilio , konfirmasi alamat email dan nomor telepon Anda.
Pendaftaran Akun TwilioSelain itu, sebagai bagian dari penawaran gratis Twilio, Anda harus menggunakan kotak pasir WhatsApp (WhatsApp Sandbox). Ini berarti bahwa Anda tidak dapat menggunakan nomor telepon Anda sendiri, dan bahwa Anda harus menjalani prosedur untuk mengeluarkan izin untuk menerima pesan WhatsApp.
Anda dapat menggunakan nomor perpesanan Anda sendiri setelah WhatsApp mengizinkan Twilio untuk menggunakan nomor Anda. Untuk mendapatkan izin, Anda harus mengisi formulir. Anda dapat belajar dari
materi pendukung Twilio bahwa meskipun Twilio bekerja langsung dengan WhatsApp, mungkin perlu waktu untuk mendapatkan izin. Selain itu, ia berbicara tentang ruang lingkup terbatas untuk mengeluarkan izin. Akibatnya, banyak yang harus menggunakan kotak pasir Twilio WhatsApp.
Semua ini tidak menimbulkan banyak kegembiraan, tetapi apa yang tersedia bagi kami sebagai bagian dari penawaran gratis Twilio memungkinkan kami untuk menyelesaikan masalah kami. Selain itu, ternyata kotak pasir WhatsApp masih merupakan satu-satunya pilihan yang tersedia secara luas.
Sekarang Anda harus menghubungkan telepon penerima pesan ke kotak pasir, setelah itu Anda dapat mengirim pesan ke telepon ini. Untuk mempelajari cara melakukan ini, Anda harus pergi ke bagian konsol Twilio, yang didedikasikan untuk WhatsApp. Secara khusus, diusulkan di sini untuk mengirim pesan WhatsApp dengan teks yang ditentukan ke nomor tertentu.
Halaman konsol Twilio dengan instruksi untuk menghubungkan ponsel tempat Anda dapat mengirim pesanPermintaan koneksi dikirim dari teleponSimpan nomor WhatsApp yang dikeluarkan untuk Anda di kontak Anda. Dia dapat diberi nama apa pun. Agar tidak menyulitkan hidup saya, saya memanggil kontak ini Twilio Sandbox, dan kemudian mengirim pesan kepadanya dari telepon ayah saya (ini dapat dilihat pada gambar sebelumnya). Prosedur ini dilakukan hanya sekali.
Sekarang Anda harus pergi ke
konsol Twilio dan mendapatkan token SID dan otentikasi untuk akun Anda. Data ini akan membantu Twilio mengenali Anda saat Anda secara terprogram bekerja dengan layanan ini.
Langkah 2. Mempelajari dan memodifikasi kode
Unduh repositori GitHub
ini dan unzip arsipnya.
Isi file zipDi sini Anda akan menemukan file sumber (
whatsapp_messaging.py
) dan paket penyebaran proyek (
aws_lambda_deploy.zip
).
Ini kode skripnya:
from twilio.rest import Client def msg_mom_and_dad(event=None, context=None):
Sekarang kita akan menguraikan kode ini. Di sini, untuk kenyamanan, tangkapan layar dengan garis bernomor.
Kode file Whatsapp_messaging.py dengan baris bernomor- Baris 1. Impor klien untuk bekerja dengan Twilio REST-API.
- Baris 3. Membuat fungsi
msg_mom_and_dad
. Kami akan meneruskan fungsi ini ke AWS. Ini akan dipanggil setiap hari pada waktu yang ditentukan. - Baris 6-7. Di sini Anda perlu mengganti
sid
ada dan auth_token
dalam kode dengan Anda sendiri (kami berbicara tentang menerimanya di akhir bagian sebelumnya). - Baris 9. Buat objek klien Twilio menggunakan kredensial.
- Baris 13. Membuat kamus. Di sini, nama penerima pesan digunakan sebagai kunci, dan nomor teleponnya sebagai nilainya. Anda dapat menambahkan informasi kontak tambahan ke kamus ini.
- Baris 15. Loop
for
, di mana kamus dilintasi (sejauh ini hanya ada satu entri di dalamnya). Di body
Anda perlu menentukan teks pesan. Saya membuat pesan sederhana dengan teks "selamat pagi", diikuti dengan nilai yang diambil dari kunci item kamus saat ini. Dalam kasus saya, ini mengarah pada pembentukan pesan "selamat pagi ayah!". from_
menunjukkan nomor WhatsApp yang kami terima sebelumnya. Untuk menuliskan jumlah penerima pesan - yang sebelumnya mereka kirim permintaan untuk terhubung ke kotak pasir Twilio WhatsApp. - Baris 23. Di sini, untuk memeriksa status pesan, kami menampilkan SID-nya. Kami tidak akan menggunakan informasi ini.
Untuk menggunakan kode ini untuk mengirim pesan, Anda perlu mengubah yang berikut di dalamnya:
twilio_sid
auth_token
contact_directory
dari_
tubuh (ini opsional)
Setelah Anda membuat perubahan pada kode, simpan file. Kemudian unzip arsip
aws_lambda_deploy.zip
, ganti file
whatsapp_messaging.py
dengan file Anda dengan nama yang sama, lalu kemas semuanya kembali ke arsip .zip. Arti dari tindakan ini adalah untuk memasukkan dalam kode kredensial Anda dan informasi tentang orang-orang yang ingin Anda kirimi pesan. Segala sesuatu yang lain dalam paket, yang dirancang untuk ditempatkan di AWS, tetap tidak berubah. Sekarang mari kita bekerja dengan AWS.
Langkah 3. Menyebarkan proyek pada AWS dan mengkonfigurasi pemicu
Kode siap dijalankan dan mengirim pesan WhatsApp. Jika Anda tertarik pada peran apa yang dimainkan file lain dari arsip
aws_lambda_deploy.zip
dalam proyek, maka perlu diketahui bahwa di antara file-file ini adalah paket Twilio dan semua dependensi proyek lainnya. Kami memerlukan semua ini karena kami berencana untuk menggunakan fungsi AWS Lambda di lingkungan Python yang tidak memiliki paket Twilio. Dan mengapa kita tidak memperbaiki ini hanya dengan menjalankan perintah
pip install twilio
untuk menginstal paket yang benar? Faktanya adalah di sini kita tidak memiliki server.
Untuk melakukan ini, kami menggunakan AWS Lambda - lingkungan komputasi tanpa server di mana Anda dapat menempatkan fragmen kode, yang panggilannya, sesuai dengan kebutuhan pengguna, dipicu oleh berbagai peristiwa dan pemicu. Kode kami direncanakan untuk berjalan hanya sekali sehari, jadi menggunakan sesuatu seperti server EC2 di AWS yang berjalan sepanjang waktu akan menjadi pemborosan sumber daya komputasi dan uang. Fungsi Lambda kami akan dipanggil setiap hari pada waktu tertentu berdasarkan permintaan dari pemicu, dan implementasinya akan memakan waktu sangat sedikit.
Mulai buat fungsi Lambda
Masuk ke akun AWS Anda. Setelah itu, pergi ke
Services → Compute → Lambda → Create a function
.
Layar pembuatan fungsi LambdaMari beri nama fungsi.
Sebagai lingkungan di mana fungsi akan dieksekusi, kita akan memilih Python 3.6. Kami tidak perlu terhubung ke layanan AWS lainnya. Oleh karena itu, kami puas dengan tingkat izin yang ditentukan oleh opsi
Create a new role with basic Lambda permissions
.
Setelah menyelesaikan pengaturan, cukup klik tombol
Create function
. Sekarang kita akan berada di panel kontrol utama.
Panel kontrolDi sini, di bagian
Function code
, Anda perlu menentukan
Handler
yang dengannya sistem dapat menjalankan kode kami. Dalam kasus kami, di bidang
Handler
, tulis
whatsapp_messaging. msg_mom_and_dad
whatsapp_messaging. msg_mom_and_dad
, menentukan nama file dengan kode dan fungsi yang ingin kita panggil.
Di bidang
Function package
, Anda perlu memuat file .zip kami, yaitu file yang kami buat di langkah sebelumnya.
Sekarang kode siap dijalankan. Anda dapat memeriksa apakah fungsi berfungsi dan mengirim pesan dengan mengklik tombol
Test
.
Langkah terakhir dalam pekerjaan kami adalah menyiapkan pemicu yang akan memanggil fungsi setiap hari pada waktu tertentu. Ikuti jalan
Add trigger → CloudWatch Events
.
Pengaturan pemicuKita perlu membuat aturan baru (
Rule
). Dia perlu menetapkan nama (
Rule name
). Jika diinginkan, Anda dapat menambahkan deskripsi ke dalamnya (
Rule description
).
Tentukan tipe aturan (
Rule type
) sebagai
Schedule expression
.
Waktu panggilan fungsi diatur menggunakan
cron(30 1 * * ? *)
construct
cron(30 1 * * ? *)
. Mari kita analisa konstruksi ini:
30 1
berarti waktu UTC 1:30 di pagi hari. Sekarang jam 7 pagi waktu IST saya.- Dua karakter berikut,
* *
, menunjukkan hari bulan dan bulan. - Dua karakter selanjutnya
? *
? *
, memungkinkan Anda menentukan hari dalam seminggu dan setahun. Desain ini berarti bahwa fungsinya akan dipanggil setiap hari, tanpa batasan tahun dan bulan.
Di sini Anda dapat mempelajari cara mengatur pekerjaan cron Anda sendiri.
Setelah pengaturan pemicu selesai, centang apakah kotak centang
Enable trigger
diaktifkan, yang memungkinkan pemicu. Sekarang tinggal mengklik tombol
Add
dan pemicu akan dibuat.
Informasi PemicuDetail Fungsi LambdaPada panel kontrol fungsi Lambda, Anda dapat melihat bahwa entitas
CloudWatch Events
melekat pada fungsi tersebut, dan bahwa fungsi tersebut dapat dipanggil ketika pemicu yang sesuai menyala.
Ringkasan
Pesan dikirim oleh skrip PythonKami telah menyelesaikan pekerjaan di proyek ini. Sekarang Anda dapat mengubah nama kontak Twilio Sandbox menjadi milik Anda sendiri di telepon penerima pesan, di kontak WhatsApp (saya mengubahnya menjadi Son). Sistem kami juga memungkinkan Anda untuk berkomunikasi dengan penerima pesan dari panel kontrol Twilio.
Pembaca yang budiman! Apakah Anda menggunakan Twilio dalam proyek Anda?
