更新时间:2023-11-02 GMT+08:00
分享

创建diapi连接器

  1. 新建自定义认证函数,函数配置如下:

    函数代码如下:

    # -*- coding:utf-8 -*-
    import json
    import base64
    import requests
    from requests.packages.urllib3.exceptions import InsecureRequestWarning
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
    """"
    mssiAuthData参数样例
    {
         "header":{}, // 连接器认证header参数
         "path": {}, // 连接器认证path参数
         "query":{}, // 连接器认证query参数
         "body":{}, // 连接器认证body参数
         "host":"https://demo.com // API主机地址
    }
    """
    def extractRequestParam(rawValue, encoded, defaultValue):
        if encoded and rawValue:
            rawValue = str(base64.b64decode(rawValue), "utf-8")
        return json.loads(rawValue) if rawValue else defaultValue
    def login(body,mssiAuthData):
        url = mssiAuthData.get("host") + "/b1dis/v1/login"
        headers = {'Content-Type': 'application/json'}
        session = requests.Session()
        session.post(url, json=body, headers=headers, verify=False)
        _cookies = []
        for k, v in session.cookies.get_dict().items():
            _cookies.append(k + "=" + v)
        return {'Cookie': ';'.join(_cookies)}
    ## 请勿对下面的函数做修改
    def handler(event, context):
        """
        函数是方法的入口
        :param event: 执行事件(event), 包含用户定义的函数参数以及所选择的的连接器认证相关参数
        :param context: Runtime提供的函数执行上下文
        :return:
        """
        isBase64Encoded = event.get('isBase64Encoded', False)
        inputData = extractRequestParam(event.get('body'), isBase64Encoded, {})  # 用户定义的函数参数数据
        mssiAuthData = extractRequestParam(event.get('mssiAuthData'), isBase64Encoded, {})  # 连接器认证数据
        mssiAuthData["securityToken"] = context.getToken()
        dataExtendConfig = extractRequestParam(event.get('dataExtendConfig'), isBase64Encoded, {})  # 流步骤扩展参数
        result = login(inputData, mssiAuthData)
        return json.dumps(result)

  2. 登录集成工作台-连接器-我的连接器-创建我的连接器;

  3. 连接器参数配置如下,认证函数选择新建的DIAPILogin函数:

相关文档