私有部署版集成【阿里云短信】(系列一),自主集成调用阿里云短信接口

集成 集成阿里云短信所有阿里云模板不局限于验证码  收藏
7 / 1929

【注】:内容太多,此文只提供关键步骤和思路,其他接口也是类似的

# 调用阿里云【获取短信模板列表】接口

  1. 参照和执行 https://docs.pd.mingdao.com/faq/codeextension.html?h=python 中的 python 相关步骤
  2. 升级更新 pip、setuptools_rust,并且安装阿里云短信 API 所需的 python 包
docker exec -t $(docker ps | grep community | awk '{print $1}') bash -c 'python3 -m pip install --upgrade pip'
docker exec -t $(docker ps | grep community | awk '{print $1}') bash -c 'pip3 install --target=/usr/local/lib/python3.6/site-packages/ cryptography==3.4.8'
docker exec -t $(docker ps | grep community | awk '{print $1}') bash -c 'pip3 install --target=/usr/local/lib/python3.6/site-packages/ setuptools_rust alibabacloud_dysmsapi20170525==2.0.23'
  1. 编写阿里短信调用接口:
    建议:由于明道云不可通过 print 输出接口中调试的内容,并且阿里云的 API 对于 Reponse 的结构没有明确的说明。
  • 可查看 alibabacloud_dysmsapi20170525 下面 py 文件的源代码
  • 在明道云 docker 中通过 python3 XXXX.py 文件通过 print 调试结果内容
  • 成功之后,再粘贴到【工作流】的 python 代码块中

如:response.body.to_map(),在阿里云 API 中没有说明,只能通过查看源代码

  1. 【获取短信模板列表】接口,分页未处理(自行处理)
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import sys

from typing import List

from alibabacloud_dysmsapi20170525.client import Client as DysmsapiClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_dysmsapi20170525 import models as dysmsapi_models


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_dysmsapi_client() -> DysmsapiClient:
        """
        使用AK&SK初始化账号Client
        """
        config = open_api_models.Config(
            access_key_id='XXXXXXXXXX',
            access_key_secret='XXXXXXXXXX'
        )
        config.endpoint = 'dysmsapi.aliyuncs.com'
        return DysmsapiClient(config)

    @staticmethod
    def query_sms_template_list(
        client: DysmsapiClient,
        page_index: int,
        page_size: int,
    ) -> None:
        req = dysmsapi_models.QuerySmsTemplateListRequest(
            page_index=page_index,
            page_size=page_size
        )
        resp = client.query_sms_template_list(req)
        return resp

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        # 页码
        page_index = 1
        # 页码大小
        page_size = 50
        client = Sample.create_dysmsapi_client()
        return Sample.query_sms_template_list(client, page_index, page_size)

if __name__ == '__main__':
    response = Sample.main(sys.argv[1:])
    output = response.body.to_map()

代码块:
image.png

JSON 解析:
image.png

从对象数组获取数据
image.png

接下来,就可以通过,子流程同步阿里云短信模板了

# 额外:如果需要将阿里云短信,集成到明道云【工作流】中的【发送短信】功能

处理方式:

  1. 参考见:https://bbs.mingdao.net/topic/2433
  2. 通过明道云的 hooks,然后调用上文的代码块,进行短信发送功能
    我们没有这样处理,暂时用不上