用python获取短信验证码,python发送短信验证码
当我们注册一个网页时,有些网页会要求短信验证和邮件验证,然后我们才能注册帐户。其实我们在项目中会遇到很多问题,比如我们在爬虫的时候,很容易因为网页的修改而使得事先写好的爬虫突然失效。这时候就需要及时通知我们的后台管理人员,以便我们及时修改。所以通过短信或邮件发送是非常必要的。
所以今天我想讲讲如何用Python发短信。
短信验证
今天使用python第三方,发送短信验证码的代码,快速实现,短信马上收到,果断记录!
程序的运行环境是windows10 Python 3.6。因为有很多第三方平台,所以今天用榛子云短信平台。这个平台可以免费使用一条消息,充值10元,发送270条短信。
下载SDK
因为我们这次的环境是Python3,所以选择Python3,下载其他需要的文件,保存就好了。
下载SDK文档
当我们点击这个,我们将进入Python SDK开发文档,如下所示:
1.装置
下载的SDK只包含一个zhenzismsclient.py文件,可以直接导入到项目中使用。
下面的文件是zhenzismsclient.py
# -*-编码:utf-8 -*-
# @时间:2019/7/21 15:19
# @作者:hang1720
# @站点:
# @ File:zhenzismclient . py
# @软件:PyCharm
导入urllib.request
导入urllib.parse
类ZhenziSmsClient(对象):
def __init__(self,apiUrl,appId,appSecret):
self.apiUrl=apiUrl
self.appId=appId
self.appSecret=appSecret
def send(自身,号码,消息,messageId= ):
数据={
appId: self.appId
appSecret: self.appSecret,
消息:消息,
数字:数字,
“messageId”:messageId
}
data=urllib . parse . urlencode(data)。编码(“utf-8”)
req=URL lib . request . request(self . API URL /SMS/send . do ,data=data)
RES _ data=URL lib . request . URL open(req)
res=res_data.read()
res=res.decode(utf-8 )
返回资源
定义余额(自身):
数据={
appId: self.appId
appSecret: self.appSecret
}
data=urllib . parse . urlencode(data)。编码(“utf-8”)
req=URL lib . request . request(self . API URL /account/balance . do ,data=data);
RES _ data=URL lib . request . URL open(req)
res=res_data.read()
返回资源
def findSmsByMessageId(self,MessageId):
数据={
appId: self.appId
appSecret: self.appSecret,
“messageId”:messageId
}
data=urllib . parse . urlencode(data)。编码(“utf-8”)
req=URL lib . request . request(self . API URL /SMS log/findsmsbymessageid . do ,data=data)
RES _ data=URL lib . request . URL open(req)
res=res_data.read()
返回资源
2.使用
简介模块
将zhenzismsclient作为smsclient导入
使用预先应用的AppId和AppSecret初始化ZhenziSmsClient:
client=smsclient。zhenzismclient(API URL,appId,app secret);
URL是请求地址,个人开发者用https://SMS _ developer.zhenzikj.com,企业开发者用https://sms.zhenzikj.com。
以下是获取AppId和AppSecret的简单步骤:
1.首先,让我们登录。
zzy1.png
2.我们得到AppId和AppSecret
zzy2.jpg
温馨提示:
可以免费用一个,以后还得自己买。
1)发送短信
result=client . send( 15811111111 ,你的验证码是2323 );
Send方法用于发送一条消息。
参数1:接收者的手机号码,参数2:短信内容。
结果是json格式的字符串,代码:发送状态,0表示成功。0不是发送失败,可以从数据中查看错误信息。
注意:请不要使用你好或 12132 全数字形式测试短信内容,没有特定含义,可能会被运营商屏蔽。
{
代码:0,
数据:成功发送
}
2)发送短信(返回状态报告)
result=client . send( 15811111111 ,您的验证码是2323 , DFEE _ DFDW _ XDFD _ DFDFDFD );
send方法用于发送单个消息,开发人员可以接受消息发送的状态报告。
参数1:接收方的手机号码,参数2:消息的内容,参数3:3:messageId是消息的唯一标识,不能重复。
结果是json格式的字符串,代码:发送状态,0表示成功。0不是发送失败,可以从数据中查看错误信息。
错误代码表
错误代码
原因
解决办法
100
参数格式错误
检查请求参数是否为空或手机号码格式是否错误。
101
短信内容超过1000字。
短信内容过长,请筛选或多次发送。
105
appId错误或应用程序不存在
请联系工作人员申请申请或检查appId是否输入错误。
106
应用程序被禁止。
请联系工作人员检查原因。
107
Ip错误
如果设置了ip白名单,系统将检查请求服务器的ip地址,并确定它是否是安全的源访问。
108
短信余额不足
需要在用户中心充值。
109
今天发送超限。
如果设置了每日发送数量,则每次接收数量不得超过此数量。
110
应用AppSecret时出错。
检查AppSecret是否输入错误,或者是否在用户中心重置了密钥。
111
账号不存在。
请联系工作人员申请账户。
1000
系统定位误差
请联系工作人员或技术人员检查原因。
3)检查余额
通过这个界面,您可以查看当前剩余的短信数量。
result=client . balance();
结果是json格式的字符串,代码:查询状态,0为成功,数据为剩余短信数。0不是查询失败。您可以查看数据中的错误信息。
错误代码表同上
4)查询短信
界面描述
根据messageId查询发送的短信
result=client . findsmsbymessageid( dfee _ dfdw _ xdfd _ DFD FD );
注意:必须是post请求。个人开发者域名为sms_developer.zhenzikj.com,企业开发者域名为developer.zhenzikj.com。
请求参数
参数名称
肯定地选择
类型
形容
应用编号
是
线
应用程序id,可通过用户中心和应用程序详细信息查看。
密钥
是
线
可以通过用户中心和应用程序详细信息查看应用程序密钥。
消息
是
线
信息,对应于发送短信界面的messageId字段
返回结果
结果是json格式的字符串,代码:查询状态,0表示成功。0不是失败,可以从数据中查看错误信息。
{
代码:0,
数据:{}
}
结果是一个json格式的字符串,代码:查询状态,0为成功,数据短信信息的json字符串。
3.密码
在研究了文档之后,我们了解到的代码如下:
# -*-编码:utf-8 -*-
# @时间:2019/7/22 15:00
# @作者:hang1720
# @站点:
# @File : send_message.py
# @软件:PyCharm
将zhenzismsclient作为smsclient导入
#生成随机验证码
随机导入
代码=
对于范围(0,6)内的数字:
code=代码字符串(random.randint(0,9))
#参数
# apiUrl是请求地址。
API URL= http://SMS _ developer . zhenzikj . com
AppId=101**6 #请在此输入您的“AppId”
app secret= yznm y2 myngityz * * * * * * q 0 lwjhtetnjeyty 3 mwzjzdky #请在此输入您的“应用程序密码”。
#初始化ZhenziSmsClient
client=smsclient。zhenzismclient(API URL,appId,appSecret)
Phone_num=input(请输入手机号码以接收消息:)
Msg=%s,您的验证码是%s,有效期为5分钟。请保密。%(电话号码,代码)
result=client.send(电话号码,消息)
打印(结果)
今天,我们将首先学习如何在项目中使用它。在我们学完redis之后,我会给你解释的。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。