找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 1676|回复: 8

求助关于企业微信推送文件(.txt .excel等文件)消息

[复制链接]
发表于 2021-2-27 11:22 | 显示全部楼层 |阅读模式
本帖最后由 呐情独爱 于 2021-2-28 10:09 编辑

源码推送文本消息来自   https://www.right.com.cn/forum/thread-4046011-1-1.html   想修改一下推送(.txt  .excel等文件)消息
自己修改的代码  还没测试不知道可行不   希望大神帮我看一下
企业微信API接口  https://work.weixin.qq.com/api/doc/90000/90135/90236#文件消息



代码见二楼


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 楼主| 发表于 2021-2-27 11:57 | 显示全部楼层
本帖最后由 呐情独爱 于 2021-2-28 10:08 编辑

楼下见代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-27 13:33 | 显示全部楼层
本帖最后由 呐情独爱 于 2021-2-28 09:51 编辑
  1. #!/bin/bash
  2. export PATH='/etc/storage/bin:/tmp/script:/etc/storage/script:/opt/usr/sbin:/opt/usr/bin:/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin'
  3. export LD_LIBRARY_PATH=/lib:/opt/lib
  4. expireTime=7200
  5. dbFile="/etc/storage/db.json"
  6. # 企业ID
  7. corpid='wwe6'
  8. # 应用凭证密钥corpsecret
  9. appsecret='y9QAvB2o'
  10. # 应用ID
  11. agentid=1000002
  12. timenow=`date +%Y-%m-%d//%H:%M:%S`

  13. if [ ! -f "$dbFile" ];then
  14.         touch "$dbFile"
  15. fi

  16. # 获取token
  17. req_time=`jq '.req_time' $dbFile`
  18. current_time=$(date +%s)
  19. refresh=false
  20. if [ ! -n "$req_time" ];then
  21.         refresh=true
  22. else
  23.         if [ $((current_time-req_time)) -gt $expireTime ];then
  24.         refresh=true
  25.         fi
  26. fi
  27. if $refresh ;then
  28.     # 获取accesstoken
  29.     token=$(curl "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=${corpid}&corpsecret=${appsecret}" | jq -r '.access_token')
  30.     if [ -z "$token" ];then
  31.             logger -t "【企业微信】" "没有获取access_token,请检查参数值和jq安装状态,并手动删除缓存文件 rm /etc/storage/db.json"
  32.             exit
  33.     else
  34.             logger -t "【企业微信】" "获取access_token值:$token"
  35.         ## 保存文件
  36.         echo "" > $dbFile
  37.         echo -e "{" > $dbFile
  38.         echo -e "\t"access_token":"$token"," >> $dbFile
  39.             echo -e "\t"req_time":$current_time" >> $dbFile
  40.         echo -e "}" >> $dbFile
  41.     fi
  42. fi

  43. # 发送消息
  44. touser='@all'
  45. agentid='1000002'
  46. accesstoken=`jq -r '.access_token' $dbFile`

  47. #返回media_id
  48. media_id= '{curl -s -F media=@${E:\00.xlsx} "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=${accesstoken}&type=file" | awk -F '"' '{print $8}'}'
  49. #发送文件消息
  50. postdata= "{"touser": "${touser}", "msgtype": "file", "agentid": "${agentid}", "file": {"media_id": "'${media_id}'"}, "safe":"0"}"
  51. # curl -d "$postdata"
  52. url= "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=${accesstoken}"
  53. curl -X POST ${url} -d ${postdata}
复制代码
回复 支持 反对

使用道具 举报

发表于 2021-2-27 18:21 来自手机 | 显示全部楼层
这不就是我的代码。。。

点评

下面改了一下 帮我看下对不对  详情 回复 发表于 2021-2-28 09:42
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-28 09:42 | 显示全部楼层
M_Yanhui 发表于 2021-2-27 18:21
这不就是我的代码。。。

下面改了一下  帮我看下对不对
回复 支持 反对

使用道具 举报

发表于 2021-3-1 13:21 | 显示全部楼层
你自己测试吧,教你个小技巧,不要直接一行命令获得id,这样它返回什么你都不知道,测试的时候把它打印出来,比如说你awk -F 那里就肯定得不到正确的id值
每个变量都打印出来,很重要
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-3 14:04 | 显示全部楼层
M_Yanhui 发表于 2021-3-1 13:21
你自己测试吧,教你个小技巧,不要直接一行命令获得id,这样它返回什么你都不知道,测试的时候把它打印出来 ...

我直接用你的脚本,一直报41001缺少token      直接赋值给token  后一直报40008

我自己写的也是一直报40008

点评

那个41001可能是你的路由器没有jq命令,你可以用其它命令代替,40008是消息类型错误  详情 回复 发表于 2021-3-3 17:37
回复 支持 反对

使用道具 举报

发表于 2021-3-3 17:37 来自手机 | 显示全部楼层
呐情独爱 发表于 2021-3-3 14:04
我直接用你的脚本,一直报41001缺少token      直接赋值给token  后一直报40008

我自己写的也是一直报40 ...

那个41001可能是你的路由器没有jq命令,你可以用其它命令代替,40008是消息类型错误
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-9 00:43 | 显示全部楼层
M_Yanhui 发表于 2021-3-3 17:37
那个41001可能是你的路由器没有jq命令,你可以用其它命令代替,40008是消息类型错误

谢谢你的答复,解决了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-6-5 17:17

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表