SHELL 调用企微机器人自动发送群文件

查看官方文档:

1、群机器人配置说明 - 文档 - 企业微信开发者中心 (qq.com)

2、上传临时素材 - 文档 - 企业微信开发者中心 (qq.com)

 

注:企微机器人使用key值,仅支持文件和语音类型;企业应用使用access_token值,可支持文件、视频、图片、语音类型;二者media_id有效期均为3天。 

测试案例:

上传文件测试,获取media_id

curl -X POST "https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=***************&=file" -F "media=@post_@json.docx"

# 'post_@json.docx'为上传文件的绝对路径

 发送文件测试,调用media_id

curl -H 'Content-Type: application/json' -d @file.json https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=***************

# 'file.json'为文件传输默认数据格式

 效果视图

扩展脚本:

根据测试用例写个简单的自动化脚本(机制:遍历目录,对符合条件的file进行收集并打包,通过机器人发送该压缩包) 

#!/bin/bash

api_get="https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=***************&type=file"
api_post="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=***************"
scr_file=$(find /data/file/ -type f -name "*.txt" -o -name "*.xlsx" -mtime 0 )

for file in ${scr_file[@]};do
    mkdir -p /data/backup/$(date +%F)
    mv ${file} /data/backup/$(date +%F)
    zip -r /data/back_zip/$(date +%F).zip /data/backup/$(date +%F)/
done

sleep 3

if [[ -f /data/back_zip/$(date +%F).zip ]];then
    file_name="/data/back_zip/$(date +%F).zip"
    media_id=$(curl -s -H 'Content-Type: multipart/form-data' ${api_get} -F "media=@${file_name}" | jq -r .media_id)

# 使用jq --arg进行传参,需注意'.file.media_id'对应其json格式的层级
    jq --arg media_id "$media_id" '.file.media_id = $media_id' file.json > new_file.json
    curl -H 'Content-Type: application/json' -d @new_file.json ${api_post}
fi

 脚本中使用 jq 命令传参到new.json,其实可以使用 ' jq -i ' 直接传入原json。但较低版本的 jq 不支持该参数,可以下载新版本使用:jqlang/jq: Command-line JSON processor (github.com)

完结。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值