钉钉开放平台查询宜搭表单实例数据

 本例结合钉钉开放平台相关api实现获取宜搭表单数据。可在faas中做实现。

本例采用python编写,已在本地实现。对于免登获取数据,数据归档到本地能提供参考。

faas具体实现请根据实际,参考使用。

采用alibabacloud-dingtalk最新安装包  ,pip 安装。

# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import sys

from typing import List

from alibabacloud_dingtalk.yida_1_0.client import Client as dingtalkyida_1_0Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_dingtalk.yida_1_0 import models as dingtalkyida__1__0_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient

from alibabacloud_dingtalk.oauth2_1_0.client import Client as dingtalkoauth2_1_0Client
from alibabacloud_dingtalk.oauth2_1_0 import models as dingtalkoauth_2__1__0_models


class Sample:
    def __init__(self):
        pass

    # 创建宜搭客户端
    @staticmethod
    def create_client() -> dingtalkyida_1_0Client:
        """
        使用 Token 初始化账号Client
        @return: Client
        @throws Exception
        """
        config = open_api_models.Config()
        config.protocol = 'https'
        config.region_id = 'central'
        return dingtalkyida_1_0Client(config)

    # 创建应用Oauth2的客户端
    @staticmethod
    def create_Oauth2Client() -> dingtalkoauth2_1_0Client:
        """
        使用 Token 初始化账号Client
        @return: Client
        @throws Exception
        """
        config = open_api_models.Config()
        config.protocol = 'https'
        config.region_id = 'central'
        return dingtalkoauth2_1_0Client(config)

    @staticmethod
    def main(
            args: List[str],
    ) -> None:

        clientOauth2 = Sample.create_Oauth2Client()
        # 获取Oauth2的token,相当于登陆者的信息,通过钉钉开发平台创建应用的ak,as获取token
        # 该token的实效是7200s
        get_access_token_request = dingtalkoauth_2__1__0_models.GetAccessTokenRequest(
            app_key='开发者平台应用的ak',
            app_secret='开发者平台应用的as'
        )
        try:
            rtn = clientOauth2.get_access_token(get_access_token_request)

            print(rtn.body.access_token)
        except Exception as err:
            if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
                # err 中含有 code 和 message 属性,可帮助开发定位问题
                print('2:', err)
                pass

        client = Sample.create_client()
        # 通过宜搭的客户端,调用宜搭模块的api函数
        search_form_datas_headers = dingtalkyida__1__0_models.SearchFormDatasHeaders()
        # 输入上面获取到应用token,该应用要开通宜搭相关权限才行。
        search_form_datas_headers.x_acs_dingtalk_access_token = rtn.body.access_token
        # 配置api相关参数
        search_form_datas_request = dingtalkyida__1__0_models.SearchFormDatasRequest(
            # 宜搭的应用参数
            app_type='宜搭应用,应用编码',
            system_token='宜搭应用,应用密钥',
            user_id='用户id',
            language='zh_CN',
            form_uuid='表单id',
            # search_field_json='{"textField_jcr0069m":"danhang","textareaField_jcr0069n":"duohang","numberField_jcr0069o":["1","10"],"radioField_jcr0069p":"选项一","selectField_jcr0069q":"选项一","checkboxField_jcr0069r":["选项二"],"multiSelectField_jcr0069s":["选项二","选项三"],"dateField_jcr0069t":[1514736000000,1517414399000],"cascadeDate_jcr0069u":[[1514736000000,1517414399000],[1514736000000,1517414399000]],"employeeField_jcr0069x":["xxxxx"],"citySelectField_jcr0069y":["110000","110100","110101"],"departmentField_jcr0069z":1123456,"cascadeSelectField_jcr006a0":["part","part_b"],"tableField_jcr006a1":"明细数据"}',
            current_page=1,
            page_size=10,
            # originator_id='1731111122223332',
            create_from_time_gmt='2022-07-01',
            create_to_time_gmt='2022-08-01',
            modified_from_time_gmt='2022-07-01',
            modified_to_time_gmt='2022-08-01'
            # dynamic_order='{"numberField_1ac":"+"}, 表示按照字段numberField_1ac升序排列'
        )
        try:
            rtn = client.search_form_datas_with_options(search_form_datas_request, search_form_datas_headers,
                                                        util_models.RuntimeOptions())
            print(rtn.body)
        except Exception as err:
            if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
                # err 中含有 code 和 message 属性,可帮助开发定位问题
                print(err)
                pass


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值