轉載:https://www.cnblogs.com/xiaowenshu/p/10488872.html
進入正文
今天跟大家分享的主題是利用python庫twilio來免費發送短信。
先放一張成品圖:
代碼放在了本文最后的地址中
正文
眼尖的小伙伴已經發現了上面的短信的前綴顯示這個短信來自於一個叫Twilio的免費的賬戶,今天我們用到的庫就是twilio,既然是免費的賬戶,那么肯定是有一些限制的,這個會在后面提到。
另外要注意的是這個網站從國內訪問的時候,可能會因為一些你懂得原因沒法訪問,需要采用技術手段訪問。
1.Twilio
Twilio是一個做成開放插件的電話跟蹤服務(call-tracking service)。
2. 安裝
官方文檔地址:https://www.twilio.com/docs/libraries/python
最簡單的方式就是通過pip,執行如下命令:
pip install twilio
3.注冊賬號
安裝好庫以后,就需要到官方的網頁上進行注冊了。
然后進入注冊頁面
接着通過了人機認證以后,就會對你的手機號碼進行認證。
4. 進入console
注冊好了以后,就可以進入我們自己的面板了
圖中箭頭所指的兩個參數是我們代碼中需要的, 可以把兩個都復制一下;
既然是發短信,那么肯定是有一個接收者和一個發送者,發送者的號碼可不是我們自己剛剛填的號碼,而且twilio給我們分配的一個號碼,因為我也是前段時間搞好了,所以不太記得這個號碼是不是一開始進去就有的了,如果沒有的話,那么就點擊Get Stared。
現在我們點擊Manage Numbers
這個時候就可以看到我們的號碼了,這是重點,記下來
5. 寫代碼
根據文檔的內容,我們編寫了下面的代碼:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : ShiMeng # @File : send_sms.py # @Software: PyCharm from twilio.rest import Client # Your Account SID from twilio.com/console account_sid = "your account sid" # Your Auth Token from twilio.com/console auth_token = "your token" client = Client(account_sid, auth_token) message = client.messages.create( # 這里中國的號碼前面需要加86 to="+接收者的號碼", from_="+twilio給你的號碼 ", body="Hello from Python!") print(message.sid)
然后執行程序,你應該會碰到下面的錯誤
可以從報錯信息中明顯的看到,提示我們說這個號碼沒有驗證,我們可以到驗證的網址上驗證一下,也可以購買一個高級別的賬號來給未驗證的號碼發送信息。
而這個就是我一開始提到的免費賬號的限制,在這個限制下面如果你想發送信息給一個接收者,這個接收者的號碼必須通過驗證,語音驗證或者短信驗證都可以。如果你是想大批量的發那種垃圾信息,那么你不用往下面看了。下面我們就來對號碼進行驗證。
6. 驗證號碼
驗證網址:https://www.twilio.com/console/phone-numbers/verified
7.重新執行代碼
這個時候重新執行我們的代碼,沒有報錯的話,接收者就應該收到你的消息了,就像我一開始放的成品圖一樣。
但是,在我們發送的信息前面,有一段前綴,我查了一下官方的文檔,說這個免費的賬戶,這個前綴是去不掉的。。。。。。
8.查看用量
在面板中,點擊Usage即可看到我們的用量, 如下圖所示
可以看到我們的用量以及花費,這個花費是不需要我們真正的付錢的,官方的解釋是:
9.打電話
打電話的代碼也很簡單
# Download the Python helper library from twilio.com/docs/python/install from twilio.rest import Client # Your Account Sid and Auth Token from twilio.com/user/account account_sid = "AC8a9ba33072b6a05f2b81126e3e6609b7" auth_token = "f0150d603c1886d93b9d45ff15d84f24" client = Client(account_sid, auth_token) call = client.calls.create( to="+接收者號碼", from_="+你的twilio號碼", url="http://demo.twilio.com/docs/voice.xml", method="GET", status_callback="https://www.myapp.com/events", status_callback_method="POST", status_callback_event=["initiated", "ringing", "answered", "completed"] ) print(call.sid)
執行程序后,電話也可以接通,但是里面的人會提示你升級賬號。
總結
好了,到這里我們就可以免費的發送短信了。
通過這個庫,我們可以:
(1)對線上或者線下后台跑的程序進行監控,並及時發送短信報警
(2)結合樹莓派玩一下,可以實現對超多場景的監測
代碼被放在了這里:https://github.com/xiaosimao/wx_code/tree/master/send_sms