文章目录
- 1. 注册阿里云
- 2. 创建签名
- 3. 创建模板
- 4. 创建AccessKey
- 5. API发送测试
- 6. 获取示例
- 7. pycharm发送验证码
- 7.1 安装sdk
- 7.2 参数修改
- 7.3 发送随机四位数字
- 7.4 验证码信息返回
- 7.5 简易版代码:
1. 注册阿里云
访问阿里云官网,进行注册
https://www.aliyun.com/
同时进行实名认证
2. 创建签名
按下列顺序来到阿里云的短信服务
这里自行填入:
-
签名:就是你发送短信的标签,比如:【签名】您的验证码为:1234,您正在登录,若非本人操作,请勿泄露。
-
签名来源:我选择的是“测试或学习”(因为我本身也是用来做项目测试用的)
-
场景说明:也可以说明一下是自己用来学习测试用的。
-
更多资料:可以不用上传。
提交后等待审核即可,若审核未通过,就看看是什么原因造成的,再重新修改并添加。
3. 创建模板
这里需要等待签名审核通过后再创建模板。
-
模板类型:选择不同的类型,下面模板内容的提示描述不同。
-
模板名称:就是简单描述你这个模板是干嘛的,比如上图我创建了两个模板“用户注册”和“登录验证码”,一个就是拿来登录用的,另一个就是拿来注册用的。
-
模板内容:就是短信具体的内容了,比如我前面举的例子(您的验证码为:1234,您正在登录,若非本人操作,请勿泄露。)注意,【签名】是它自动帮你生成的,不用管。还要注意下面说的变量,看看它提供的变量格式就明白了。
-
应用场景:就自己填写了,我之前自己创建了一个公众号,就用了公众号的名字。
-
场景说明:就按照它说明的,写上用来测试账号即可。
创建好后等待审核通过即可。
4. 创建AccessKey
我这里选择的是继续使用AccessKey
创建好后就会显示你的ID和Secret,一定要保存好AccessKey Secret,因为一旦关掉这个后后面就找不到它了。
这样AccessKey就创建好了。
5. API发送测试
提前购买一些短信套餐,新人有折扣挺便宜的,也就几块钱,这里不多说。
就是在这个页面往上拉一点就能看到“购买国内套餐包”。
点击“调用API发送短信”后来到这个页面
直接点击“发送调用”,它会提示你会产生费用,所以我们最好提前购买好套餐。
然后就可以从手机上看到了
6. 获取示例
测试后我们回到刚刚的网页,按顺序点击
第三个步骤是复制上面的python代码
7. pycharm发送验证码
7.1 安装sdk
打开pycharm,新建一个py文件,将刚刚复制的代码粘贴上去
此时可以看到有很多报错,这是因为我们还没有安装sdk。下面进行安装
直接pip install的话很多会报错,而且速度比较慢,这里用清华镜像源安装。
pip install alibabacloud_dysmsapi20170525 -i https://pypi.tuna.tsinghua.edu.cn/simplepip install alibabacloud_tea_openapi -i https://pypi.tuna.tsinghua.edu.cn/simplepip install alibabacloud_tea_util -i https://pypi.tuna.tsinghua.edu.cn/simple
安装了前两个后发现第三个也不是非要安装0.0,所以我们安装前两个就好。
7.2 参数修改
注意,不止这一处的代码需要修改,下面的代码也有这样的参数需要修改。
修改好后运行就能发送验证码了。
7.3 发送随机四位数字
添加如下代码即可:
7.4 验证码信息返回
在main函数里将send_sms_request返回即可
7.5 简易版代码:
from alibabacloud_dysmsapi20170525.client import Client as Dysmsapi20170525Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_dysmsapi20170525 import models as dysmsapi_20170525_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClientimport randomcode = random.randrange(1000, 9999)def create_client(access_key_id, access_key_secret):config = open_api_models.Config(access_key_id=access_key_id,access_key_secret=access_key_secret)config.endpoint = f'dysmsapi.aliyuncs.com'return Dysmsapi20170525Client(config)def send_sms():client = create_client('AccessKey ID', 'AccessKey Secret')send_sms_request = dysmsapi_20170525_models.SendSmsRequest(sign_name='签名,template_code='模板号',phone_numbers='手机号',# template_param='{"code":"4567"}'template_param='{"code":"' + str(code) + '"}')runtime = util_models.RuntimeOptions()try:# 复制代码运行请自行打印 API 的返回值client.send_sms_with_options(send_sms_request, runtime)except Exception as error:# 如有需要,请打印 errorUtilClient.assert_as_string(error.message)return send_sms_requestprint(send_sms())