Python3利用Twilio(國際)以及騰訊雲服務(國內)免費發送手機短信

原文轉載自「劉悅的技術博客」v3u.cn/a_id_152小程序

短信服務驗證服務已經不是什麼新鮮事了,可是免費的手機短信服務卻很少見,本次利用Python3.0基於Twilio和騰訊雲服務分別來體驗一下國際短信和國內短信接口。微信小程序

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

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

安裝依賴的庫app

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美分,因此測試的時候悠着點,別超過額度限制。ui

國內短信業務這塊兒作的比較好的有阿里雲,騰訊雲,和百度雲,另外七牛雲和又拍雲也有相應的服務,爲何必定要選擇騰訊雲呢?其實很簡單,由於有免費的100條短信能夠用。阿里雲

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

註冊成功後,騰訊雲會自動生成一個短信應用,若是沒有默認應用,須要新建一下rest

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

以後配置短信的簽名,簽名顧名思義,用來限制短信接口的權限,防止被惡意調用,同時簽名須要騰訊客服人工審覈,大概須要兩個小時左右。

這裏推薦使用小程序來作簽名類型,同時簽名內容是自定義的,證實類型很簡單,只須要去微信小程序後臺界面截個圖便可。

配置好籤名,還須要配置一下短信模板,模板的含義也很簡單,就是給用戶發送的短信內容

模板中的{}符號是相似通配符的東西,發送短信時用變量進行替換,注意代表索引數量,模板也須要騰訊客服人工審覈,大概須要兩個小時左右。另外短信長度最好不要超過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庫單獨設置一下,最後查看一下結果

同時騰訊雲服務短信比Twilio體驗好的一點在於它具備詳細的統計後臺,方便咱們對短信到達率進行監控和統計,對海量用戶的羣發也比較友好。

原文轉載自「劉悅的技術博客」 v3u.cn/a_id_152

相關文章
相關標籤/搜索