【注】:内容太多,此文只提供关键步骤和思路,其他接口也是类似的
# 调用阿里云【获取短信模板列表】接口
- 参照和执行 https://docs.pd.mingdao.com/faq/codeextension.html?h=python 中的 python 相关步骤
- 升级更新 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'
- 编写阿里短信调用接口:
建议:由于明道云不可通过 print 输出接口中调试的内容,并且阿里云的 API 对于 Reponse 的结构没有明确的说明。
- 可查看 alibabacloud_dysmsapi20170525 下面 py 文件的源代码
- 在明道云 docker 中通过 python3 XXXX.py 文件通过 print 调试结果内容
- 成功之后,再粘贴到【工作流】的 python 代码块中
如:response.body.to_map(),在阿里云 API 中没有说明,只能通过查看源代码
- 【获取短信模板列表】接口,分页未处理(自行处理)
# -*- 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()
代码块:
JSON 解析:
从对象数组获取数据
接下来,就可以通过,子流程同步阿里云短信模板了
# 额外:如果需要将阿里云短信,集成到明道云【工作流】中的【发送短信】功能
处理方式:
- 参考见:https://bbs.mingdao.net/topic/2433
- 通过明道云的 hooks,然后调用上文的代码块,进行短信发送功能
我们没有这样处理,暂时用不上