开发者社区> 问答> 正文

我想实现,宜搭表单上传附件,自动推送到钉盘去,然后获取到钉盘链接,并删除附件,节约宜搭空间

我想实现,宜搭表单上传附件,自动推送到钉盘去,然后获取到钉盘链接,并删除附件,节约宜搭空间

展开
收起
游客b5iv5vlkqe73m 2023-07-28 17:54:44 1227 4
来自:钉钉宜搭
10 条回答
写回答
取消 提交回答
  • 要实现这个功能,你需要使用宜搭的API接口和钉钉的API接口。具体步骤如下:

    1. 在宜搭中创建一个表单,添加一个文件上传组件,设置好相关参数,如上传文件类型、大小限制等。

    2. 在表单提交时,调用宜搭的API接口,将上传的文件上传到钉盘。你可以使用Python编写一个简单的Web服务,接收宜搭表单提交的文件,然后调用宜搭和钉钉的API接口进行文件上传和获取钉盘链接。

    3. 上传成功后,获取到钉盘链接,并在你的服务器上保存该链接。

    4. 最后,删除宜搭中的附件,这样就节约了空间。

    以下是一个简化的Python代码示例,用于实现上述功能:

    import requests
    
    # 宜搭表单提交的URL和参数
    yi_dap_form_submit_url = "https://example.com/yi_dap_form_submit"
    yi_dap_form_submit_data = {
        "file": "example.txt",  # 上传的文件名
        "filetype": "txt",  # 文件类型
        "sizelimit": 10 * 1024 * 1024,  # 文件大小限制(10MB)
    }
    
    # 钉钉API接口地址和参数
    dingtalk_api_url = "https://oapi.dingtalk.com/topapi/file/upload"
    dingtalk_api_params = {
        "access_token": "your_dingtalk_access_token",  # 钉钉访问令牌
    }
    
    # 上传文件到钉盘并获取链接
    def upload_to_dingtalk(file):
        files = {"media": file}
        headers = {"Content-Type": "multipart/form-data"}
        response = requests.post(dingtalk_api_url, params=dingtalk_api_params, data=files, headers=headers)
        if response.status_code == 200:
            return response.json()["media_id"]
        else:
            raise Exception("Failed to upload file to DingTalk")
    
    # 保存钉盘链接到数据库或文件系统(此处省略具体实现)
    def save_dingtalk_link(fileid, link):
        pass
    
    # 删除宜搭附件(此处省略具体实现)
    def delete_yi_dap_attachment(fileid):
        pass
    
    # 主程序逻辑
    if __name__ == "__main__":
        yi_dap_form_submit_response = requests.post(yi_dap_form_submit_url, data=yi_dap_form_submit_data)
        if yi_dap_form_submit_response.status_code == 200:
            fileid = yi_dap_form_submit_response.json()["fileid"]
            dingtalk_link = upload_to_dingtalk(requests.files["file"])["media_id"]
            save_dingtalk_link(fileid, dingtalk_link)
            delete_yi_dap_attachment(fileid)
        else:
            print("Failed to submit YiDAp form")
    

    请注意,这个示例仅用于演示目的,你需要根据实际情况修改代码,并确保正确处理错误和异常。同时,你需要替换其中的your_dingtalk_access_token为实际的钉钉访问令牌。

    2023-08-18 10:26:31
    赞同 1 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    用户可以在流水线任务中配置钉钉群通知插件,为指定钉钉群推送流水线运行信息。

    添加钉钉群机器人
    通过“群设置”->“添加机器人”->选择自定义 webhook 机器人。

    image.png

    可参考以下文档:

    https://developers.dingtalk.com/document/robots/custom-robot-access/

    复制 webhook 地址,并配置到流水线钉钉插件中。

    2023-07-31 15:25:41
    赞同 5 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    实现将宜搭表单上传的附件自动推送到钉盘,并获取到钉盘链接并删除附件的功能,可以按照以下步骤进行:

    1. 获取表单提交事件:在宜搭表单配置中,找到提交事件设置。你可以选择使用后端脚本或Webhook等方式来接收表单的提交事件。

    2. 处理表单提交事件:当接收到表单提交事件时,你可以在后端脚本中进行处理。首先,将附件从表单数据中提取出来,并保存到临时文件夹中。

    3. 推送附件到钉盘:使用钉钉开放平台的文件上传接口,将附件推送到钉盘。你需要使用钉钉开放平台的应用凭证(AppKey和AppSecret)进行身份验证,并调用文件上传接口,将附件上传到指定的钉盘目录中。

    4. 获取钉盘链接:在文件上传成功后,钉盘会返回文件的唯一标识符。你可以使用这个标识符构造出文件的访问链接,可以通过钉盘的接口或者拼接URL的方式获取到该链接。

    5. 删除附件:在获取到钉盘链接之后,你可以根据需求决定是否删除原始的表单附件。如果需要删除,可以使用相应的后端脚本或API调用,删除临时文件夹中的附件。

    2023-07-29 23:42:50
    赞同 5 展开评论 打赏
  • 要实现将宜搭表单上传的附件自动推送到钉盘,并获取钉盘链接并删除附件,您可以按照以下步骤进行操作:

    首先,您需要在宜搭表单中添加一个文件上传字段,以便用户可以上传附件。

    接下来,您可以使用宜搭的Webhook功能,将表单提交事件发送到一个服务器端脚本。

    在服务器端脚本中,您可以使用钉钉开放平台的API,通过调用钉盘接口实现将附件上传到钉盘。

    在上传成功后,您可以获取到钉盘中的文件链接。

    最后,您可以再次使用钉钉开放平台的API,通过调用钉盘接口删除已上传的附件。

    2023-07-29 17:15:04
    赞同 4 展开评论 打赏
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    宜搭附件支持在线预览, 为了做到数据提交前预览可以检查上传的附件是否正确,提交后预览可以减少下载附件占电脑内存容量,目前提交数据前后,PC端、移动端均支持在线预览附件。

    预览支持 Excel、Word、PPT 三种 office 文档和 PDF,扩展名如下:

    Excel 系列:et,xls,xlt,xlsx,xlsm,xltx,xltm,csv

    Word 系列:doc,docx,txt,dot,wps,wpt,dotx,docm,dotm

    PPT 系列:ppt,pptx,pptm,pptm,ppsm,pps,potx,potm,dpt,dps

    宜搭表单上传附件想直接推送到钉盘,应该需要在宜搭中使用钉钉连接器,宜搭与连接平台互通以后,通过低代码配置,既可在宜搭中使用钉钉连接器,也可在连接器中配置连接流操作宜搭API。

    宜搭与连接平台之间,是相互集成、互相开放的典型例子。

    连接流:在连接平台中,实现数据转换同步的流程被定义为连接流,可以通过低代码的形式制作,也可以像宜搭一样以系统集成的方式生成。 在宜搭使用连接平台连接器的过程中,每一个调用关系的背后都是一个连接流。宜搭在使用钉钉能力时,会通过连接流与钉钉交换数据,由此来完成自己的业务。

    宜搭将自身开发能力注册成为连接器,使用连接平台连接流,通过低代码的方式,结合其它连接器,可以实现与宜搭的连通。

    2023-07-29 10:55:27
    赞同 4 展开评论 打赏
  • 热爱开发

    要实现这个功能,你需要使用宜搭的API接口和钉钉的API接口。以下是可能的实现步骤:

    使用宜搭的API接口获取表单数据和附件ID。
    使用钉钉的API接口将附件上传到钉盘,并获取到附件的URL链接。
    使用宜搭的API接口删除附件。
    将钉盘链接返回给用户。

    2023-07-29 09:03:58
    赞同 3 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,你可以通过以下步骤来实现在宜搭表单上传附件后自动推送到钉盘,并获取钉盘链接并删除附件:

    1. 创建钉盘机器人

    首先,您需要在钉盘中创建一个机器人,并获取机器人的Webhook地址。机器人的Webhook地址是用来接收钉盘消息的,您需要将这个地址保存下来,以便后续使用。

    1. 配置宜搭表单

    接下来,您需要在宜搭表单中配置上传附件后触发的自动动作。您可以在表单设计器中选择要上传附件的表单字段,并在字段设置中启用附件上传功能。然后,您需要在表单设置中选择“高级设置”,并在“自定义脚本”中编写一个脚本来实现将上传的附件推送到钉盘的功能。

    1. 编写脚本

    在自定义脚本中,您需要编写一段JavaScript代码来实现将上传的附件推送到钉盘的功能。您可以使用钉盘机器人的Webhook地址来发送消息到钉盘,并将上传的附件作为附件附加到消息中。同时,您还需要编写代码来获取钉盘中的附件链接,并将链接保存到表单中的一个字段中。最后,您需要编写代码来删除上传的附件,以节约宜搭空间。

    以下是一个示例代码,可以将上传的附件推送到钉盘,并获取钉盘链接并删除附件:

    // 获取上传的附件
    var attachment = formData['attachment'];
    
    // 将附件推送到钉盘
    var dingTalkRobotUrl = "https://oapi.dingtalk.com/robot/send?access_token=YOUR_ACCESS_TOKEN";
    var payload = {
      "msgtype": "file",
      "file": {
        "media_id": attachment.mediaId
      }
    };
    http.post(dingTalkRobotUrl, { json: payload });
    
    // 获取钉盘中的附件链接
    var dingTalkFileUrl = "https://oapi.dingtalk.com/cspace/download/url";
    var payload = {
      "access_token": "YOUR_ACCESS_TOKEN",
      "media_id": attachment.mediaId,
      "path": "/",
      "filename": attachment.filename
    };
    var result = http.post(dingTalkFileUrl, { json: payload });
    var fileUrl = result.body.url;
    
    // 将附件链接保存到表单中的一个字段中
    formData['attachmentUrl'] = fileUrl;
    
    // 删除上传的附件
    attachment.delete();
    

    请注意,上述示例代码仅供参考,您需要根据自己的实际情况进行修改和调整。

    2023-07-29 09:00:31
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    实现您的需求可以分为以下几步:

    在宜搭表单中添加上传附件的功能,并在提交表单时将附件上传到服务器。

    使用钉钉开放平台提供的 API,将上传的附件推送到钉盘中。您可以使用 OAuth2.0 鉴权方式,获取用户的访问令牌,并使用 API 接口上传文件。具体的 API 接口可以参考钉盘开放平台的文档。

    获取钉盘中上传文件的链接。您可以使用钉盘开放平台提供的分享链接功能,将文件分享到公共链接,并获取到文件的链接地址。

    在宜搭表单中显示文件的链接,以便用户可以访问和下载文件。

    删除上传的附件,以节约宜搭空间。您可以在文件上传到钉盘之后,从服务器中删除上传的文件。

    2023-07-28 20:58:31
    赞同 1 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    实现将宜搭表单上传的附件自动推送到钉盘,并获取钉盘链接并删除附件,可以按照以下步骤进行:

    1. 配置钉盘和宜搭表单:

      • 在钉盘中创建一个用于存储上传附件的文件夹。
      • 在宜搭表单上配置一个文件上传字段,确保其连接到正确的存储位置。
    2. 编写代码或使用Webhook:

      • 你可以使用钉盘提供的开放API,在表单提交后将附件传输到钉盘。这需要编写代码来处理宜搭表单的提交事件,将附件发送到钉盘,并获取到钉盘链接。
      • 可以使用钉钉工作台的Webhook功能,将表单提交事件直接发送到特定的服务器URL。然后在服务器端,根据收到的表单数据进行相应的处理操作,包括将附件传输到钉盘并获取链接。
    3. 删除附件:

      • 获取到钉盘中附件的链接后,可以在宜搭表单的提交成功回调中或者其他适当的时机,编写代码来删除原始的附件文件,以节约宜搭空间。

    请注意,具体的实现细节可能因你所选择的编程语言、钉盘和宜搭表单的具体接口等而有所不同。你需要查阅钉盘和宜搭表单的开发文档,并在代码中使用适当的API来实现附件的推送、获取链接和删除等操作。

    2023-07-28 20:39:47
    赞同 展开评论 打赏
  • 要实现将宜搭表单上传的附件自动推送到钉盘,并获取钉盘链接并删除附件,可以按照以下步骤进行:

    1. 配置宜搭表单: 在宜搭表单中添加一个文件上传字段,以允许用户上传附件。

    2. 监听表单提交事件: 使用宜搭提供的脚本或触发器功能,在表单提交时触发相应的脚本或函数。

    3. 连接钉钉开放平台: 在钉钉开放平台注册并创建一个应用,获取到相应的应用ID和密钥。使用这些凭据来建立与钉钉开放平台的连接。

    4. 上传附件到钉盘: 使用钉钉开放平台提供的API,通过调用文件上传接口将附件上传到钉盘。此时,您可以指定上传的目录,并获取到该文件在钉盘中的唯一文件ID。

    5. 获取钉盘链接: 使用钉钉开放平台提供的API,通过调用文件分享接口获取到上传附件在钉盘中的分享链接。您可以选择生成公开链接或限制访问权限。

    6. 删除附件: 在完成上传和获取链接后,使用钉钉开放平台提供的API,调用文件删除接口来删除原始的宜搭表单附件,以节约宜搭空间。

    2023-07-28 18:00:43
    赞同 1 展开评论 打赏
滑动查看更多
问答分类:
问答地址:
关联地址:
相关产品:
来源圈子
更多
收录在圈子:
+ 订阅
「宜搭」是云钉原生低代码平台(钉钉 PaaS - aPaaS),让企业应用搭建更简单! 帮助中小企业降本提效,加强组织的数字化自主权; 帮助大型企业释放个体创新力,助力组织创新涌现。
相关文档: 宜搭
问答排行榜
最热
最新

相关电子书

更多
宜搭 - 企业智能化应用搭建平台 立即下载
《云市场-宜搭解决方案》 立即下载
《宜搭开发手册》 立即下载