1. 程式人生 > 程式設計 >Python基於Twilio及騰訊雲實現國際國內簡訊介面

Python基於Twilio及騰訊雲實現國際國內簡訊介面

簡訊服務驗證服務已經不是什麼新鮮事了,但是免費的手機簡訊服務卻不多見,本次利用Python3.0基於Twilio和騰訊雲服務分別來體驗一下國際簡訊和國內簡訊介面。

首先,註冊Twilio:www.twilio.com/

註冊成功後,獲取ACCOUNT SID和AUTH TOKEN,一會要用到

Python基於Twilio及騰訊雲實現國際國內簡訊介面

安裝依賴的庫

pip3 install twilio

隨後編寫傳送指令碼

#導包 匯入客戶端 
from twilio.rest import Client 
 
#定義簡訊sid 
account_sid = '你的sid' 
#定義祕鑰 
auth_token = '你的祕鑰' 
 
#定義客戶端物件  
client = Client(account_sid,auth_token) 
message = client.messages.create( 
  to="+8613423432818",# 接受簡訊的手機號,也就是註冊介面驗證過的那個自己的手機號,注意 寫中國區號 +86 
  from_="+12118627871",# 傳送簡訊的美國手機號 區號 +1 
  body="Hello from Python!") 
#打印發送結果 
print(message)

整個過程比較簡單,如此你就擁有了一個免費的國際手機簡訊服務介面,注意傳送的手機號要填寫手機號的國家區號,另外twilio的額度也並非無限,將會有一個10刀的額度,每發一條將會扣除1美分,所以測試的時候悠著點,別超過額度限制。

國內簡訊業務這塊兒做的比較好的有阿里雲,騰訊雲,和百度雲,另外七牛雲和又拍雲也有相應的服務,為什麼一定要選擇騰訊雲呢?其實很簡單,因為有免費的100條簡訊可以用。

首先註冊騰訊雲服務:cloud.tencent.com

註冊成功後,騰訊雲會自動生成一個簡訊應用,如果沒有預設應用,需要新建一下

Python基於Twilio及騰訊雲實現國際國內簡訊介面

記錄一下應用的 appid 以及 appkey 一會要用到

之後配置簡訊的簽名,簽名顧名思義,用來限制簡訊介面的許可權,防止被惡意呼叫,同時簽名需要騰訊客服人工稽核,大概需要兩個小時左右。

Python基於Twilio及騰訊雲實現國際國內簡訊介面

這裡推薦使用小程式來做簽名型別,同時簽名內容是自定義的,證明型別很簡單,只需要去微信小程式後臺介面截個圖即可。

配置好籤名,還需要配置一下簡訊模板,模板的含義也很簡單,就是給使用者傳送的簡訊內容

Python基於Twilio及騰訊雲實現國際國內簡訊介面

模板中的{}符號是類似萬用字元的東西,傳送簡訊時用變數進行替換,注意表明索引數量,模板也需要騰訊客服人工稽核,大概需要兩個小時左右。另外簡訊長度最好不要超過70字,超過以後長簡訊就會按每67字一條來計算,那就虧大發了。

以上就是前期的配置,下面安裝騰訊雲簡訊的sdk

pip3 install qcloudsms_py

編寫傳送指令碼

# 簡訊應用SDK AppID 
appid = 你的appid # SDK AppID是1400開頭 
 
# 簡訊應用SDK AppKey 
appkey = "你的appkey" 
 
# 需要傳送簡訊的手機號碼 
phone_numbers = ["你要傳送的手機號"] 
 
# 簡訊模板ID,需要在簡訊應用中申請 
template_id = 在模板列表裡獲取  
 
# 簽名 
sms_sign = "劉悅的技術部落格" 
 
from qcloudsms_py import SmsSingleSender 
from qcloudsms_py.httpclient import HTTPError 
 
 
import ssl 
ssl._create_default_https_context = ssl._create_unverified_context 
 
ssender = SmsSingleSender(appid,appkey) 
params = ["6666","5"] # 當模板沒有引數時,`params = []` 
try: 
  result = ssender.send_with_param(86,phone_numbers[0],template_id,params,sign=sms_sign,extend="",ext="") # 簽名引數不允許為空串 
  print(result) 
except HTTPError as e: 
  print(e) 
except Exception as e: 
  print(e)

整個流程沒什麼難度,需要注意一點這裡為了避免ssl證書的問題需要匯入ssl庫單獨設定一下,最後檢視一下結果

Python基於Twilio及騰訊雲實現國際國內簡訊介面

同時騰訊雲服務簡訊比Twilio體驗好的一點在於它具有詳細的統計後臺,方便我們對簡訊到達率進行監控和統計,對海量使用者的群發也比較友好。

Python基於Twilio及騰訊雲實現國際國內簡訊介面

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。