首页 > 其他分享 >钉钉审批接口支持三方通过接口传附件

钉钉审批接口支持三方通过接口传附件

时间:2024-12-04 09:00:26浏览次数:5  
标签:三方 String dingtalk request 接口 附件 null requestStream

     之前钉钉是不支持直接接口进行传附件的,只能通过前端获取参数然后点击传输;新接口通过代码封装获取数据流,上传附件然后提交附件,把返回的数据包解析适合于三方的发起格式数据,上传即可,剩下就是通过接口传审批带附件内容的数据。

主要使用的接口:

  •  获取钉盘空间信息接口

    POST /v1.0/workflow/processInstances/spaces/infos/query HTTP/1.1
    Host:api.dingtalk.com
    x-acs-dingtalk-access-token:String
    Content-Type:application/json

    {
    "userId" : "String",
    "agentId" : Long
    }

  • 获取文件上传信息接口

    POST /v1.0/storage/spaces/{spaceId}/files/uploadInfos/query?unionId=String HTTP/1.1
    Host:api.dingtalk.com
    x-acs-dingtalk-access-token:String
    Content-Type:application/json

    {
    "protocol" : "String",
    "multipart" : Boolean,
    "option" : {
    "storageDriver" : "String",
    "preCheckParam" : {
    "md5" : "String",
    "size" : Long,
    "parentId" : "String",
    "name" : "String"
    },
    "preferRegion" : "String",
    "preferIntranet" : Boolean
    }
    }

  • 使用OSS的header加签方式上传文件 public static string HttpRequest(string url, string filePath, Dictionary<string, string> headers) {
        FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);     BinaryReader reader = new BinaryReader(fileStream);     reader.BaseStream.Seek(0, SeekOrigin.Begin);     byte[] datas = reader.ReadBytes((int)reader.BaseStream.Length);     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);     request.Method = "PUT";     request.Timeout = 150000;     foreach (var header in headers) {         request.Headers.Add($"{header.Key}", $"{header.Value}");     }     Stream requestStream = null;     string responseStr = null;     try {         if (datas != null) {             request.ContentLength = datas.Length;             requestStream = request.GetRequestStream();             requestStream.Write(datas, 0, datas.Length);             requestStream.Close();         } else {             request.ContentLength = 0;         }         HttpWebResponse response = request.GetResponse() as HttpWebResponse;         responseStr = response.Headers.GetValues("x-oss-request-id")[0];     } catch (Exception ex) {         Console.WriteLine("error");     } finally {         request = null;         requestStream = null;     }     return responseStr; }
  • 提交文件
  • POST /v1.0/storage/spaces/{spaceId}/files/commit?unionId=String HTTP/1.1
    Host:api.dingtalk.com
    x-acs-dingtalk-access-token:String
    Content-Type:application/json

    {
    "uploadKey" : "String",
    "name" : "String",
    "parentId" : "String",
    "option" : {
    "size" : Long,
    "conflictStrategy" : "String",
    "appProperties" : [ {
    "name" : "String",
    "value" : "String",
    "visibility" : "String"
    } ]
    }
    }

 

  

 

标签:三方,String,dingtalk,request,接口,附件,null,requestStream
From: https://www.cnblogs.com/yatai-bd/p/18585467

相关文章

  • 常见问题解决 --- nginx反向代理接口返回404
    可能原因反向代理地址写错了,还有一种可能是没有配置host请求头,导致不能正确找到服务器解决办法:修改nginx反向代理,配置虚拟主机名称,配置举例server{listen8082;server_name172.16.68.3;root/usr/local/nginx/html/;location......
  • 虾皮根据关键词取商品列表API接口的开发应用与收益
    随着电子商务的蓬勃发展,电商平台的数据分析与应用已成为企业制定市场策略、优化产品布局和提升用户体验的重要手段。在这个过程中,API(ApplicationProgrammingInterface,应用程序编程接口)发挥着至关重要的作用。作为东南亚领先的电商平台,虾皮(Shopee)通过其开放的API接口为开发者......
  • WPF中嵌入第三方窗体-WindowsFormsHost使用
    嵌入第三方窗体到Windows窗体或控件中,通过调用API方法很容易实现,但是在WPF存在一些问题,这里对解决这些问题的方法做一点笔记:首先说一下要做嵌入第三方窗体要用到的API方法[DllImport("user32.dll",SetlastError=true)]privatestaticexternIntPtrSetParent(IntPtrhWndC......
  • Lock接口
    目录Lock接口概述API方法锁获取与中断Synchronized和Lock的区别大佬地址:AQS(AbstractQueuedSynchronizer)源码深度解析(2)—Lock接口以及自定义锁的实现Lock接口概述Lock接口同样自于JDK1.5,它被描述成JUC中的锁的超级接口,所有的JUC中的锁都会实现Lock接口。由于它是作为接......
  • vue main.js 捕获错误日志并上传后端接口示例
    import'./assets/main.css';import'./assets/tailwind.css';import'./components/myts';import{createApp}from'vue';import{createPinia}from'pinia';importAppfrom'./App.vue';import......
  • 第三方Cookie的消亡与Google服务器端标记的崛起
    随着互联网用户对隐私保护的关注日益增强,各大浏览器正在逐步淘汰第三方Cookie。这一变革深刻影响了广告商和数字营销人员的用户跟踪和数据分析方式。然而,Google推出的服务器端标记技术为这一挑战提供了新的解决方案。什么是第三方Cookie?第三方Cookie是由您访问的网站以外的......
  • UniApp 微信小程序请求接口报错:request:fail errcode:10011 的原因分析与解决方案
    UniApp微信小程序请求接口报错:request:failerrcode:10011的原因分析与解决方案在使用UniApp开发微信小程序时,我们可能会遇到一些请求接口的错误,特别是request:failerrcode:10011cronet_error_code:0error_msg:networkchange,cancelalltask这样的错误信息。这......
  • 开源低代码平台-Microi吾码-接口引擎实战:微信支付回调接口
    接口引擎实战:微信支付回调接口前言预览图业务逻辑接口引擎V8代码Microi吾码-系列文档接口引擎实战-系列文档前言上一篇发布了【接口引擎实战:微信v3支付JSAPI下单】:https://microi.blog.csdn.net/article/details/144156119接口引擎与第三方平台对接无所不能,下一篇介......
  • 券商交易接口哪家有?
    炒股自动化:申请官方API接口,散户也可以python炒股自动化(0),申请券商API接口python炒股自动化(1),量化交易接口区别Python炒股自动化(2):获取股票实时数据和历史数据Python炒股自动化(3):分析取回的实时数据和历史数据Python炒股自动化(4):通过接口向交易所发送订单Python炒股自动化(5):......
  • 利用 Function 接口告别冗余(屎山)代码
    前言在Java开发的征途中,我们时常与重复代码不期而遇。这些重复代码不仅让项目显得笨重,更增加了维护成本。幸运的是,Java8带来了函数式编程的春风,以Function接口为代表的一系列新特性,为我们提供了破除这一难题的利剑。本文将以一个实际应用场景为例,即使用Java8的函数式编程......