Python基于Twilio及腾讯云实现国际国内短信接口


Posted in Python onJune 18, 2020

短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用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及腾讯云实现国际国内短信接口

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python多进程并发(multiprocessing)用法实例详解
Jun 02 Python
理解Python垃圾回收机制
Feb 12 Python
python3中set(集合)的语法总结分享
Mar 24 Python
python cx_Oracle的基础使用方法(连接和增删改查)
Nov 19 Python
基于python实现学生管理系统
Oct 17 Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 Python
python GUI实现小球满屏乱跑效果
May 09 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
Apr 14 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
Sep 29 Python
Python 数据结构之十大经典排序算法一文通关
Oct 16 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
Jun 18 #Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
Jun 18 #Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 #Python
python中tab键是什么意思
Jun 18 #Python
python中可以声明变量类型吗
Jun 18 #Python
tensorflow之读取jpg图像长和宽实例
Jun 18 #Python
Python叠加矩形框图层2种方法及效果
Jun 18 #Python
You might like
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
jQuery验证插件 Validate详解
2014/11/20 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
小程序采集录音并上传到后台
2019/11/22 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
python 生成不重复的随机数的代码
2011/05/15 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
Scrapy框架实现的登录网站操作示例
2020/02/06 Python
python实现串口通信的示例代码
2020/02/10 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
django model object序列化实例
2020/03/13 Python
python实现简单坦克大战
2020/03/27 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
分布式数据库需要考虑哪些问题
2013/12/08 面试题
C#怎么让一个窗口居中显示?
2015/10/20 面试题
中专生自我鉴定书范文
2013/12/28 职场文书
开除通知书范本
2015/04/25 职场文书
交通事故代理词范文
2015/05/23 职场文书
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python
Python面试不修改数组找出重复的数字
2022/05/20 Python