Python基于Twilio及騰訊云實(shí)現(xiàn)國(guó)際國(guó)內(nèi)短信接口
短信服務(wù)驗(yàn)證服務(wù)已經(jīng)不是什么新鮮事了,但是免費(fèi)的手機(jī)短信服務(wù)卻不多見,本次利用Python3.0基于Twilio和騰訊云服務(wù)分別來(lái)體驗(yàn)一下國(guó)際短信和國(guó)內(nèi)短信接口。
首先,注冊(cè)Twilio: www.twilio.com/
注冊(cè)成功后,獲取ACCOUNT SID和AUTH TOKEN,一會(huì)要用到

安裝依賴的庫(kù)
pip3 install twilio
隨后編寫發(fā)送腳本
#導(dǎo)包 導(dǎo)入客戶端 from twilio.rest import Client #定義短信sid account_sid = '你的sid' #定義秘鑰 auth_token = '你的秘鑰' #定義客戶端對(duì)象 client = Client(account_sid,auth_token) message = client.messages.create( to="+8613423432818", # 接受短信的手機(jī)號(hào),也就是注冊(cè)界面驗(yàn)證過(guò)的那個(gè)自己的手機(jī)號(hào),注意 寫中國(guó)區(qū)號(hào) +86 from_="+12118627871", # 發(fā)送短信的美國(guó)手機(jī)號(hào) 區(qū)號(hào) +1 body="Hello from Python!") #打印發(fā)送結(jié)果 print(message)
整個(gè)過(guò)程比較簡(jiǎn)單,如此你就擁有了一個(gè)免費(fèi)的國(guó)際手機(jī)短信服務(wù)接口,注意發(fā)送的手機(jī)號(hào)要填寫手機(jī)號(hào)的國(guó)家區(qū)號(hào),另外twilio的額度也并非無(wú)限,將會(huì)有一個(gè)10刀的額度,每發(fā)一條將會(huì)扣除1美分,所以測(cè)試的時(shí)候悠著點(diǎn),別超過(guò)額度限制。
國(guó)內(nèi)短信業(yè)務(wù)這塊兒做的比較好的有阿里云,騰訊云,和百度云,另外七牛云和又拍云也有相應(yīng)的服務(wù),為什么一定要選擇騰訊云呢?其實(shí)很簡(jiǎn)單,因?yàn)橛忻赓M(fèi)的100條短信可以用。
首先注冊(cè)騰訊云服務(wù): cloud.tencent.com
注冊(cè)成功后,騰訊云會(huì)自動(dòng)生成一個(gè)短信應(yīng)用,如果沒(méi)有默認(rèn)應(yīng)用,需要新建一下

記錄一下應(yīng)用的 appid 以及 appkey 一會(huì)要用到
之后配置短信的簽名,簽名顧名思義,用來(lái)限制短信接口的權(quán)限,防止被惡意調(diào)用,同時(shí)簽名需要騰訊客服人工審核,大概需要兩個(gè)小時(shí)左右。

這里推薦使用小程序來(lái)做簽名類型,同時(shí)簽名內(nèi)容是自定義的,證明類型很簡(jiǎn)單,只需要去微信小程序后臺(tái)界面截個(gè)圖即可。
配置好簽名,還需要配置一下短信模板,模板的含義也很簡(jiǎn)單,就是給用戶發(fā)送的短信內(nèi)容

模板中的{}符號(hào)是類似通配符的東西,發(fā)送短信時(shí)用變量進(jìn)行替換,注意表明索引數(shù)量,模板也需要騰訊客服人工審核,大概需要兩個(gè)小時(shí)左右。另外短信長(zhǎng)度最好不要超過(guò)70字,超過(guò)以后長(zhǎng)短信就會(huì)按每67字一條來(lái)計(jì)算,那就虧大發(fā)了。
以上就是前期的配置,下面安裝騰訊云短信的sdk
pip3 install qcloudsms_py
編寫發(fā)送腳本
# 短信應(yīng)用SDK AppID
appid = 你的appid # SDK AppID是1400開頭
# 短信應(yīng)用SDK AppKey
appkey = "你的appkey"
# 需要發(fā)送短信的手機(jī)號(hào)碼
phone_numbers = ["你要發(fā)送的手機(jī)號(hào)"]
# 短信模板ID,需要在短信應(yīng)用中申請(qǐng)
template_id = 在模板列表里獲取
# 簽名
sms_sign = "劉悅的技術(shù)博客"
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"] # 當(dāng)模板沒(méi)有參數(shù)時(shí),`params = []`
try:
result = ssender.send_with_param(86, phone_numbers[0],
template_id, params, sign=sms_sign, extend="", ext="") # 簽名參數(shù)不允許為空串
print(result)
except HTTPError as e:
print(e)
except Exception as e:
print(e)
整個(gè)流程沒(méi)什么難度,需要注意一點(diǎn)這里為了避免ssl證書的問(wèn)題需要導(dǎo)入ssl庫(kù)單獨(dú)設(shè)置一下,最后查看一下結(jié)果

同時(shí)騰訊云服務(wù)短信比Twilio體驗(yàn)好的一點(diǎn)在于它具有詳細(xì)的統(tǒng)計(jì)后臺(tái),方便我們對(duì)短信到達(dá)率進(jìn)行監(jiān)控和統(tǒng)計(jì),對(duì)海量用戶的群發(fā)也比較友好。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解pandas映射與數(shù)據(jù)轉(zhuǎn)換
這篇文章主要介紹了pandas映射與數(shù)據(jù)轉(zhuǎn)換的相關(guān)資料,幫助大家更好的利用python進(jìn)行數(shù)據(jù)分析,感興趣的朋友可以了解下2021-01-01
python3獲取當(dāng)前文件的上一級(jí)目錄實(shí)例
下面小編就為大家分享一篇python3獲取當(dāng)前文件的上一級(jí)目錄實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
pytorch自定義不可導(dǎo)激活函數(shù)的操作
這篇文章主要介紹了pytorch自定義不可導(dǎo)激活函數(shù)的操作,具有很好的參考價(jià)值,希望大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
使用wxPython和OpenCV實(shí)現(xiàn)手勢(shì)識(shí)別相機(jī)功能
在這篇博客中,我將分享一個(gè)有趣的?Python?項(xiàng)目:通過(guò)?wxPython?創(chuàng)建圖形界面,利用?OpenCV?的計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)實(shí)時(shí)手勢(shì)識(shí)別,以下是項(xiàng)目的完整實(shí)現(xiàn)過(guò)程,包括代碼分析、使用說(shuō)明和可能的優(yōu)化建議,需要的朋友可以參考下2025-04-04
Python3.6安裝及引入Requests庫(kù)的實(shí)現(xiàn)方法
下面小編就為大家分享一篇Python3.6安裝及引入Requests庫(kù)的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
python編程學(xué)習(xí)使用管道Pipe編寫優(yōu)化代碼
大家好,今天這篇文章我將詳細(xì)講解 Pipe 如何讓你的代碼更加簡(jiǎn)潔的方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
Python輸出列表(List)不帶中括號(hào)和引號(hào)的問(wèn)題及解決方法
這篇文章主要介紹了Python輸出列表(List)不帶中括號(hào)和引號(hào)的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02

