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

2023-10-30

 本例结合钉钉开放平台相关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:])

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

钉钉开放平台查询宜搭表单实例数据 的相关文章

随机推荐

  • flex 子元素占满剩余高度 与 flex:1 的子元素 overflow:hidden 失效

    这几天使用flex开发大屏 遇到一个印象比较深的问题就是flex的子元素 在其他兄弟元素的高度不定的情况下 如何占满父元素的剩余空间 效果图 要点就是 1 父元素要设置 display flex 2 父元素的主轴方向设置为从上到下 flex
  • Dockerfile 中 ENTRYPOINT 的使用

    先占个坑 以免忘记 有空了来填
  • 2、Java基础-NIO、IO、ThreadLocal类

    1 IO和NIO 1 1 传统IO和NIO区别在哪 Java NIO和IO之间最大的区别在 IO是面向流的 而NIO是面向缓存区buffer的 Java NIO是非阻塞式的 意味着使用一个线程向某通道发送一个请求读取数据 如果buffer中
  • Squid日志分析与访问控制详解

    squid日志分析与访问控制 squid的日志系统能够帮助我们查看访问者的记录 包括来访者Internet的站点信息 时间占用信息 排名 连接次数和访问量 是一个很完善的日志系统 squid常用日志分为如下两个 分别是access log
  • 笔试题14:用TCP通信模型创建一个Web服务器(源码)

    我们都知道 IIS Apache和tomcat等Web服务器可以用来创建Web站点 负责接受客户端浏览器的HTTP请求 那么 他们是如何实现的呢 其实基本原理是采用TCP通信模型 下面给出一个采用Java的TCP编程API创建的简易Web服
  • deque容器和list容器学习

    1 deque简介 deque容器同样是一种顺序容器 你可以了解你的元素的存储位置 你可以安排你的元素的存储位置 和vector相比 deque可以实现用常数的时间在容器头部插入元素 同样deque也没有容量的概念 这是因为deque可以动
  • AUTO sharding policy will apply DATA sharding policy as it failed to apply FILE sharding policy

    使用tf distribute MirroredStrategy 时 出现警告 AUTO sharding policy will apply DATA sharding policy as it failed to apply FILE
  • MySQL 8.0.23中复制架构从节点自动故障转移

    接触MGR有一段时间了 MySQL 8 0 23的到来 基于MySQL Group Replicaion MGR 的高可用架构又提供了新的架构思路 灾备机房的slave 如何更好的支持主机房的MGR MGR 到底可以坏几个节点 这次我就以上
  • fastgithub

    之前我在网上搜过解决办法 其中一个是修改 hosts 文件 但是效果不太理想 我在这里给大家推荐github上的一个开源项目 FastGithub 用了这个之后 效果就比较理想了 次次都能访问到 源码地址 GitHub dotnetcore
  • 简易虚拟培训系统-UI控件的应用2

    目录 Text组件 文字显示 Text组件 文字动态显示 ScrollView组件 使用文件流动态读取硬盘文件 本篇介绍Text和ScrollView的简单应用 以及读取硬盘中 txt文本的内容 Text组件 文字显示 1 加入Text 在
  • 小程序导入npm包 注意事项

    官方api https developers weixin qq com miniprogram dev devtools npm html 1 需要在小程序文件夹 npm init 2 安装需要的npm包 先安装需要的npm 包在构建np
  • 解释器与编译器区别

    让我们看看编译器和解释器之间的主要区别 1 编译器将一个程序作为一个整体进行翻译 而解释器则一条一条地翻译一个程序 2 在编译器的情况下生成中间代码或目标代码 而解释器不创建中间代码 3 编译器比解释器要快得多 因为编译器一次完成整个程序
  • Java基础面试题附带答案(八)

    106字节流和字符流的区别 1 字节流读取的时候 读到一个字节就返回一个字节 字符流读取的时候会读到一个或多个字节 这个要根据字符流中编码设置 一般中文对应的字节数是两个 在UTF 8码表中是3个字节 2 字节流可以处理所有类型数据 如 图
  • Unity如何开发微信小游戏

    微信小游戏现在非常的火 很多开发Unity的同学 都想自己开发微信小游戏 无奈tiny还不成熟 导致很多同学有自己创业做微信小游戏的想法 但是由于技术 却放弃了这样的机会 今天我给大家讲述unity同学如何转型做微信小游戏 1 解放思想 我
  • angular使用websocket和Rxjs

    文章目录 前言 一 Websocket是什么 二 在服务端搭建websocket服务 三 使用rxjs中的websocketsubject 1 使用websocket 2 搭建服务 3 如何拦截到socket关闭 4 如何断线重连 5 如何
  • 运行时动态库:not found 及介绍-linux的-Wl,-rpath命令

    一 运行时动态库 not found 今天在使用linux编写c c 程序时 需要用到第三方的动态库文件 刚开始编译完后 运行提示找不到动态库文件 我就使用了ldd命令查看了一下 发现是有一个库文件显示 not found 如下图所示 库文
  • 法兰克焊接机器人编程入门_Fanuc焊接机器人编程实例

    L 11 89 IF R 2 2 JMP LBL 12 90 IF R 2 3 JMP LBL 13 91 IF R 2 4 JMP LBL 14 92 IF R 2 5 JMP LBL 15 93 IF R 2 6 JMP LBL 16
  • CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘.To initi

    看起来你的shell没有正确配置使用conda activate命令 这可能是因为你在安装Anaconda时没有选择将其添加到系统路径中 解决这个问题的方法是运行conda init
  • Power BI第三方图表

    KPI类 Bullet Chart 子弹图 用来展现目标完成率 可定义红 黄 绿区域 Bullet Chart by OKViz 以垂直或水平形式展现目标达成情况 同时可以显示多个指标 Card with States by OKViz 一
  • 钉钉开放平台查询宜搭表单实例数据

    本例结合钉钉开放平台相关api实现获取宜搭表单数据 可在faas中做实现 本例采用python编写 已在本地实现 对于免登获取数据 数据归档到本地能提供参考 faas具体实现请根据实际 参考使用 采用alibabacloud dingtal