Python基于Twilio及騰訊云實(shí)現(xiàn)國(guó)際國(guó)內(nèi)短信接口
短信服務(wù)驗(yàn)證服務(wù)已經(jīng)不是什么新鮮事了,但是免費(fèi)的手機(jī)短信服務(wù)卻不多見(jiàn),本次利用Python3.0基于Twilio和騰訊云服務(wù)分別來(lái)體驗(yàn)一下國(guó)際短信和國(guó)內(nèi)短信接口。
首先,注冊(cè)Twilio: www.twilio.com/
注冊(cè)成功后,獲取ACCOUNT SID和AUTH TOKEN,一會(huì)要用到
安裝依賴(lài)的庫(kù)
pip3 install twilio
隨后編寫(xiě)發(fā)送腳本
#導(dǎo)包 導(dǎo)入客戶(hù)端 from twilio.rest import Client #定義短信sid account_sid = ’你的sid’ #定義秘鑰 auth_token = ’你的秘鑰’ #定義客戶(hù)端對(duì)象 client = Client(account_sid,auth_token) message = client.messages.create( to='+8613423432818', # 接受短信的手機(jī)號(hào),也就是注冊(cè)界面驗(yàn)證過(guò)的那個(gè)自己的手機(jī)號(hào),注意 寫(xiě)中國(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)要填寫(xiě)手機(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)做簽名類(lèi)型,同時(shí)簽名內(nèi)容是自定義的,證明類(lèi)型很簡(jiǎn)單,只需要去微信小程序后臺(tái)界面截個(gè)圖即可。
配置好簽名,還需要配置一下短信模板,模板的含義也很簡(jiǎn)單,就是給用戶(hù)發(fā)送的短信內(nèi)容
模板中的{}符號(hào)是類(lèi)似通配符的東西,發(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
編寫(xiě)發(fā)送腳本
# 短信應(yīng)用SDK AppID appid = 你的appid # SDK AppID是1400開(kāi)頭 # 短信應(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證書(shū)的問(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ì)海量用戶(hù)的群發(fā)也比較友好。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 如何利用python操作注冊(cè)表2. 如何在jsp界面中插入圖片3. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理4. jsp文件下載功能實(shí)現(xiàn)代碼5. 詳解瀏覽器的緩存機(jī)制6. ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)經(jīng)驗(yàn)分享7. phpstudy apache開(kāi)啟ssi使用詳解8. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器9. xml中的空格之完全解說(shuō)10. JSP之表單提交get和post的區(qū)別詳解及實(shí)例
