当前位置:首页 > 编程笔记 > 正文
已解决

Pycharm使用阿里云SDK发送短信(超详细+避坑!!)

来自网友在路上 165865提问 提问时间:2023-10-30 13:50:43阅读次数: 65

最佳答案 问答题库658位专家为你答疑解惑

文章目录

  • 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. 创建签名

按下列顺序来到阿里云的短信服务

image-20231029231134350

image-20231029231247418

image-20231029231345049

这里自行填入:

  • 签名:就是你发送短信的标签,比如:【签名】您的验证码为:1234,您正在登录,若非本人操作,请勿泄露。

  • 签名来源:我选择的是“测试或学习”(因为我本身也是用来做项目测试用的)

  • 场景说明:也可以说明一下是自己用来学习测试用的。

  • 更多资料:可以不用上传。

image-20231029231440151

提交后等待审核即可,若审核未通过,就看看是什么原因造成的,再重新修改并添加。

3. 创建模板

image-20231029231911946

这里需要等待签名审核通过后再创建模板。

  • 模板类型:选择不同的类型,下面模板内容的提示描述不同。

  • 模板名称:就是简单描述你这个模板是干嘛的,比如上图我创建了两个模板“用户注册”和“登录验证码”,一个就是拿来登录用的,另一个就是拿来注册用的。

  • 模板内容:就是短信具体的内容了,比如我前面举的例子(您的验证码为:1234,您正在登录,若非本人操作,请勿泄露。)注意,【签名】是它自动帮你生成的,不用管。还要注意下面说的变量,看看它提供的变量格式就明白了。

  • 应用场景:就自己填写了,我之前自己创建了一个公众号,就用了公众号的名字。

  • 场景说明:就按照它说明的,写上用来测试账号即可。

image-20231029231952798

创建好后等待审核通过即可。

4. 创建AccessKey

image-20231029232928780

我这里选择的是继续使用AccessKey

image-20231029233054083

image-20231029233201930

创建好后就会显示你的ID和Secret,一定要保存好AccessKey Secret,因为一旦关掉这个后后面就找不到它了。

image-20231029233303887

这样AccessKey就创建好了。

5. API发送测试

提前购买一些短信套餐,新人有折扣挺便宜的,也就几块钱,这里不多说。

image-20231029233554117

就是在这个页面往上拉一点就能看到“购买国内套餐包”。

image-20231029233730491

点击“调用API发送短信”后来到这个页面

image-20231029233925841

直接点击“发送调用”,它会提示你会产生费用,所以我们最好提前购买好套餐。

image-20231029234244669

然后就可以从手机上看到了

6. 获取示例

测试后我们回到刚刚的网页,按顺序点击

image-20231029234356890

第三个步骤是复制上面的python代码

7. pycharm发送验证码

7.1 安装sdk

打开pycharm,新建一个py文件,将刚刚复制的代码粘贴上去

image-20231029234603245

此时可以看到有很多报错,这是因为我们还没有安装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 参数修改

image-20231029235450896

注意,不止这一处的代码需要修改,下面的代码也有这样的参数需要修改。

修改好后运行就能发送验证码了。

7.3 发送随机四位数字

添加如下代码即可:

image-20231029235706101

image-20231030000527990

7.4 验证码信息返回

在main函数里将send_sms_request返回即可

image-20231030000011893

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())
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Pycharm使用阿里云SDK发送短信(超详细+避坑!!)":http://eshow365.cn/6-27841-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!