『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 12968|回复: 23

企业微信改版,使用方法更加接近官方notify

[复制链接]

21

主题

188

帖子

1483

积分

金牌会员

Rank: 6Rank: 6

积分
1483
金钱
1290
HASS币
60
发表于 2019-10-30 10:05:03 | 显示全部楼层 |阅读模式
本帖最后由 chiunownow 于 2019-11-28 13:53 编辑

home-assistant-wechatwork-notify

项目名称: home-assistant-wechatwork-notify

github:<https://github.com/Chiunownow/home-assistant-wechatwork-notify

本项目魔改自 @81795791原贴)与 @ck3原贴)的企业微信推送插件。感谢

组件下载 https://github.com/Chiunownow/home-assistant-wechatwork-notify/releases/latest

home-assistant-wechatwork-notify-1.1.3.zip (5.55 KB, 下载次数: 33)

更新日志

2019年11月28日更新

  1. 修复企业微信报错41015

2019年11月1日更新

  1. 某鱼收了个 Kindle 看了几页书回来继续乱改惹
  2. 修复发送图片时标题不能为空的bug
  3. 现在推送图片,除了data-photo还允许使用data-image
  4. 优化代码逻辑
  5. 优化log输出

前言

本项目来自一个没学过 Python 的人(我)的瞎折腾。

为什么要改?

举个栗子,假设我要发一个推送,原先的企业微信插件使用方法大概是这样的:

#原版企业微信文本推送
title: 这是推送标题
message: text|这是推送内容
#原版企业微信图片推送
title: 这是推送标题
message: image|这是图片描述|/path/to/photo.jpg

熟悉官方插件的人应该知道,大部分的推送服务应该是这样的

#其他组件文本推送
title: 这是推送标题
message: 这是推送内容
#其他组件图片推送
title: 这是推送标题
message: 这是图片描述
data:
        photo: /path/to/photo.jpg

当一个信息要同时推送到多端(如 iOS,mobile_app,html5,telegram 等)时,就会受到限制,需要特地为他多写一次配置。本次修改就是为了解决这一问题。

插件介绍

  1. 功能介绍

    1. 文本推送(带标题用文本卡片,不带标题直接发送文本消息)
    2. 图片推送(使用图文消息mpnews方式,文件上传到微信临时素材库)
    3. 视频推送(使用视频消息)
    4. 文件推送(使用文件消息,受限企业微信功能,文本与文件会拆两条消息推送。文本内容参考1)

    实现样式参考企业微信API文档-发送应用消息

  2. 特点

    1. 区别于各种 Pushbear 改版插件,可以无标题推送(受限企业微信API,图片推送除外(写到这里想起来可以把message当title多发一次嘛……))
    2. 使用 @ck3 提供的方法,将图片视频上传到企业微信临时素材库,避免直接暴露到公网
    3. 推送使用方式向其他 ha notify 组件靠拢
  3. 配置方法

    notify:
     - platform: wechatwork
       name: your_wechat #自定义推送服务名称,比如这里出来就是 notify.your_wechat
       corpid: !secret wxpusher_corpid #企业ID
       agentId: !secret wxpusher_agentId #应用ID
       secret: !secret wxpusher_secret #应用对应的密钥
       touser: '@all' #@all是向企业内所有人推送,亦可 UserID1|UserID2|UserID3
       ha_url: https://your.ha.url #你的HA链接,推送文本卡片时点击链接前往你的HA
       #以上项目均为必填

    几个 ID 和密钥的获取方式请见[基础教程] 通过企业微信推送消息(暂时取代方糖)

  4. 使用方法

    #文本不带标题
    message: 文本信息
    #文本带标题
    title: 标题
    message: 文本信息
    #图片
    title: 标题 #必填
    message: 图片描述
    data:
        photo: /path/to/photo.jpg #或image: 亦可
    #视频
    title: 标题 #选填
    message: 视频描述
    data:
        video: /path/to/video.mp4
    #文件
    title: 标题 #选填
    message: 文件描述
    data:
        file: /path/to/file.txt

    如碰到voluptuous.error.MultipleInvalid: expected dict for dictionary value @ data['data']请检查文件路径前是否有空格(需要空格)

后续计划

  • [x] 实现图片推送免标题
  • [x] 让 log 正常一点
  • [ ] 上传文件超时正确输出 log
  • [ ] 实现 data_template
  • [ ] data后面的参数似乎对空格过于敏感?(放弃,应该是hass限制)

    项目公开在 github,欢迎吊锤鞭策。正好借此契机开始入门学习 Python。




home-assistant-wechatwork-notify-1.1 (1).zip

5.41 KB, 下载次数: 28

评分

参与人数 2金钱 +24 收起 理由
81795791 + 12 膜拜大神!
luzai + 12 论坛有你更精彩!

查看全部评分

回复

使用道具 举报

25

主题

416

帖子

3027

积分

元老级技术达人

积分
3027
金钱
2601
HASS币
40
发表于 2019-10-30 11:22:00 | 显示全部楼层
强烈支持
回复

使用道具 举报

15

主题

438

帖子

4362

积分

论坛元老

Rank: 8Rank: 8

积分
4362
金钱
3924
HASS币
0
发表于 2019-10-30 15:31:41 | 显示全部楼层
图片要放在哪里,怎么写都不成功
回复

使用道具 举报

21

主题

188

帖子

1483

积分

金牌会员

Rank: 6Rank: 6

积分
1483
金钱
1290
HASS币
60
 楼主| 发表于 2019-10-30 18:05:44 | 显示全部楼层
miniknife 发表于 2019-10-30 15:31
图片要放在哪里,怎么写都不成功

图片放在哪跟本插件应该没什么关系,主要看基础配置的白名单文件夹有没有设定好
回复

使用道具 举报

21

主题

188

帖子

1483

积分

金牌会员

Rank: 6Rank: 6

积分
1483
金钱
1290
HASS币
60
 楼主| 发表于 2019-11-1 04:23:44 | 显示全部楼层

更新日志

2019年11月1日更新

  1. 某鱼收了个 Kindle 看了几页书回来继续乱改惹
  2. 修复发送图片时标题不能为空的bug
  3. 现在推送图片,除了data-photo还允许使用data-image
  4. 优化代码逻辑
  5. 优化log输出

很奇怪为啥反应如此不热烈……企业微信应该是目前国内安卓用户最稳定且显示效果最好的推送手段吧

回复

使用道具 举报

17

主题

357

帖子

2084

积分

论坛DIY达人

积分
2084
金钱
1717
HASS币
40
发表于 2019-11-1 19:33:01 | 显示全部楼层
感谢分享,,但是带附件的一个都没成功,可否看看调用服务的格式哇
{"title":"111","message":"111","data":"video: /config/local/1.mp4"}
回复

使用道具 举报

21

主题

188

帖子

1483

积分

金牌会员

Rank: 6Rank: 6

积分
1483
金钱
1290
HASS币
60
 楼主| 发表于 2019-11-1 19:41:08 | 显示全部楼层
hugh_jie 发表于 2019-11-1 19:33
感谢分享,,但是带附件的一个都没成功,可否看看调用服务的格式哇

你留意下HA版本。0.100之后在前端调用服务已经不用json,和配置文件一样用yaml
回复

使用道具 举报

17

主题

357

帖子

2084

积分

论坛DIY达人

积分
2084
金钱
1717
HASS币
40
发表于 2019-11-1 19:44:35 | 显示全部楼层
chiunownow 发表于 2019-11-1 19:41
你留意下HA版本。0.100之后在前端调用服务已经不用json,和配置文件一样用yaml ...

哇,,哈哈,果然是,成了,非常感谢
回复

使用道具 举报

4

主题

228

帖子

4422

积分

元老级技术达人

积分
4422
金钱
4179
HASS币
40
发表于 2019-11-6 11:51:59 | 显示全部楼层
楼主给个建议  其实没必要弄ha的url  然后用普通图文可以代替文本卡片  因为这样可以不用点开那个详情了。。另外 图文(mpnews)模式可以直接打开页面。。message写入content这个  也不错
回复

使用道具 举报

21

主题

188

帖子

1483

积分

金牌会员

Rank: 6Rank: 6

积分
1483
金钱
1290
HASS币
60
 楼主| 发表于 2019-11-7 09:08:29 | 显示全部楼层
本帖最后由 chiunownow 于 2019-11-7 09:31 编辑
81795791 发表于 2019-11-6 11:51
楼主给个建议  其实没必要弄ha的url  然后用普通图文可以代替文本卡片  因为这样可以不用点开那个详情了。 ...

普通图文是指 msgtype:news 吗?这种方法图片用的是 picurl 而不是 media_id,似乎安全性和可靠性低一些。所以我没用这种方法。
OP@OB}2~@8NXXBHY60)YGVM.png

这个是 title + message 的显示效果,点击卡片是跳转haurl。信息内容的展示完整,通知栏推送的话,在我的一加7p上,锁屏界面会显示message内容,通知栏只会显示title。

mpnews 模式下的 content_source_url 是文章页尾的阅读原文链接,不是卡片点击跳转链接吧

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-4 01:24 , Processed in 0.086793 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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