python脚本编写_如何用Python包编写一个简单的脚本,表达你对父母的爱?
在繁忙的工作生活中,我們經常忘記給所愛的人發WhatsApp。本教程將使用Python包Twilio編寫一個簡單的Python腳本來發送WhatsApp消息。我們會把代碼放在亞馬遜網絡服務云(AWS)上,以便在每天的特定時間運行它。
開始吧!
一個解決方案是使用Python的Selenium包,并使用WhatsApp網絡,而不是免費層結束后才提供訂閱的Twilio。但WhatsApp需要不時掃描手機上的QR碼,因此無法實現自動化。
我們將分三步進行:
? Twilio初始設置
? 理解并修改代碼
? 將包放在帶有觸發器的AWS lambda上
步驟1:Twilio 初始設置
創建一個免費的Twilio帳戶,并確認電子郵件和手機號碼。
此外,一個免費層Twilio賬戶需要使用Twilio沙箱的WhatsApp,這意味著你不能使用你的號碼,且必須通過一次性許可才能收到WhatsApp的消息。
WhatsApp批準Twilio使用你的號碼后,你便可以獲得自己的號碼,解決上面兩個問題。你只需填寫一個表格,并等待一段時間。
這些消息都令人氣餒,但我們的免費層解決方案做得很好。而且就目前而言,這是唯一可行的方法。
現在你必須將接收者的手機連接到WhatsApp沙箱上才能開始接收信息。
現在轉到WhatsApp測試版控制臺的學習部分。
將分配給你的WhatsApp號碼保存在聯系人中。你可以給它取任何名字。為了簡單起見,我們將它保存為Twilio Sandbox,然后從我父親的手機發送一條消息給它,如上所示。這必須進行一次,而且只能進行一次。
現在轉到Twilio控制臺,獲取帳戶SSID和身份驗證令牌。這將幫助Twilio知道是你在執行代碼。
步驟2:理解并修改代碼
下載GitHub存儲庫并提取它:https://github.com/kartik-nighania/whatsapp_with_aws_lambda
壓縮文件中的內容
你將在里面找到我們的代碼文件和部署包。
? whatsapp_messaging.py
? aws_lambda_deploy.zip
whatsapp_messaging代碼文件
? 第1行:導入Twilio包,并使用它的REST客戶端來訪問Twilio API。
? 第3行:創建了一個函數msg_mom_and_dad,它將用于AWS,并在每天的特定時間運行。
? 第6-7行:如步驟1所述,替換帳戶的sid和auth_token。
? 第9行:使用我們的憑證創建Twilio客戶端對象。
? 第13行:創建一個Python字典,其中名字作為key,電話號碼作為value。還可以繼續向這個Python字典添加內容,以便向更多的人發送消息。
? 第15行:寫一個for循壞遍歷所有的key和value對(目前只有一個)。在body中寫你的消息。我寫了非常簡單的一句“早上好”,后面加上key值。上面的代碼顯示“早上好,爸爸”,之后我們加上for和數字,該數字是之前獲得的Twilio WhatsApp號碼。后面再加上to和數字,該數字是之前用于WhatsApp沙箱確認的號碼。
? 第23行:通過打印SID檢查消息狀態的行。反正我們不會用這個。
我們要修改五樣東西:
? twilio_sid
? auth_token
? contact_directory
? from_
? body (非必須)
更改這些之后保存,然后提取aws_lambda_deploy.zip并使用新創建的函數替換里面的whatsapp_messaging.py,再進行壓縮。我們只是想用你的憑證和聯系方式更改代碼。現在部署包已經準備好了。
步驟3:將包放在帶有觸發器的AWS Lambda上
我們的代碼可以運行并發送WhatsApp消息。你也許想知道部署包中的其他文件是什么,它們其實是Twilio包及其所有其他依賴項。因為我們將在沒有Twilio包的Python環境中使用AWS Lambda函數。但是為什么不運行pip install twilio來安裝它呢?因為我們這里沒有服務器。
AWS Lambda是一種無服務器的計算服務,可以根據用戶的需要基于不同的AWS事件和觸發器運行一段代碼。因此,全天候運行服務器(AWS中的EC2實例)來執行我們的小任務是對計算資源和金錢的浪費。這里Lambda函數每天只在我們提到的時間觸發器上運行很短的時間。
Lambda服務非常便宜,每個月可以免費滿足100萬個請求。
登錄到https://aws.amazon.com,然后單擊Services -> Compute -> Lambda -> create a function
命名你的函數。
我們選擇Python 3.6作為環境。
由于我們不需要連接到AWS中的其他服務,選擇基本權限就可以。
單擊create function,你將看到主儀表板。
在函數代碼塊中,向Lambda函數處理程序指定:我們希望在每次調用Lambda函數時運行whatsapp_messaging Python文件和其中的msg_mom_and_dad函數。如上所述更改處理程序值。
在代碼入口點,選擇upload a.zip file,上載在步驟2中創建的部署包并保存。
現在我們的代碼可以運行了。可以單擊test并檢查該功能是否成功將消息發送到指定的WhatsApp號碼。
最后一步是每天在特定的時間觸發它。在設計器框中單擊add trigger -> CloudWatch Events即可。
我們必須創建一個新規則。你可以任意命名和描述它。
將規則類型設置為schedule expression。
我們使用cron()指定時間。30 1指協調世界時(UTC)凌晨1:30(相當于印度標準時間早上7點)。
接下來的兩個*分別代表一月中的某一天和月份。
再后面的?和*分別代表一周中的某一天和一年中的某一天。我們用*和?指定每天、每月和每年。可以參考下面的示例來創建自己的cron參數。若想深入了解,可參考aws_cron_docs上的cron向導。
完成后,請確保選中了Enable trigger復選框。最后,單擊add按鈕。
現在可以在Lambda函數儀表板上看到CloudWatch事件附加到Lambda函數上。向下滾動時,可以看到啟用了CloudWatch事件來觸發函數。
就是這樣!你可以將Twilio沙箱名稱更改為你的名稱,甚至可以響應來自Twilio儀表板的回復。
留言 點贊 關注
我們一起分享AI學習與發展的干貨
編譯組:鮑怡然、劉賀
相關鏈接:
https://medium.com/better-programming/i-wrote-a-script-to-whatsapp-my-parents-every-morning-in-just-20-lines-of-python-code-5d203c3b36c1
如需轉載,請后臺留言,遵守轉載規范
總結
以上是生活随笔為你收集整理的python脚本编写_如何用Python包编写一个简单的脚本,表达你对父母的爱?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ fork 进程时 共享内存_因为
- 下一篇: python实战经典例子_Python基