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

 找回密码
 立即注册
查看: 2756|回复: 5

[基础教程] shell_command 方式使用 wxpusher (微信通知推送)

[复制链接]

2

主题

87

帖子

335

积分

中级会员

Rank: 3Rank: 3

积分
335
金钱
248
HASS币
0
发表于 2021-8-20 15:11:06 | 显示全部楼层 |阅读模式
本帖最后由 zrtest 于 2021-8-20 15:21 编辑

因为发送消息其实就是通过 GET 或者 POST 命令进行 HTTP 调用,官网中有发送消息的接口,所以可以通过 HA 的 shell_command 调用 curl 来发送消息。
POST 接口
此接口 type  2 和 type  3 未测试成功,POST 接口是功能完整的接口,推荐使用
{
  "appToken":"AT_xxx",
  "content":"Wxpusher祝你中秋节快乐!",
  "summary":"消息摘要",//消息摘要,显示在微信聊天页面或者模版消息卡片上,限制长度100,可以不传,不传默认截取content前面的内容。
  "contentType":1,//内容类型 1表示文字  2表示html(只发送body标签内部的数据即可,不包括body标签) 3表示markdown
  "topicIds":[ //发送目标的topicId,是一个数组!!!,也就是群发,使用uids单发的时候, 可以不传。
      123
  ],
  "uids":[//发送目标的UID,是一个数组。注意uids和topicIds可以同时填写,也可以只填写一个。
      "UID_xxxx"
  ],
  "url":"http://wxpusher.zjiecode.com" //原文链接,可选参数
}

写成 curl 命令,可以在终端中执行测试是否能成功
$ curl -X POST -H "Content-Type: application/json" -d '{"appToken":"你的 TOKEN", "content":"需要发送的内容","contentType":1,"uids":["接收对象的 uid"],"url":"http://wxpusher.zjiecode.com"}' http://wxpusher.zjiecode.com/api/send/message

在 configuration.yaml 中配置,需要替换 your_token 和 your_uid
shell_command:
  notify_wechat_post: curl -X POST -H "Content-Type:application/json" -d '{"appToken":"your_token", "content":"{{msg}}","contentType":{{type}},"uids":["your_uid"],"url":"http://wxpusher.zjiecode.com"}' http://wxpusher.zjiecode.com/api/send/message

注意:Content-Type 冒号后面不要加空格,在终端中有空格执行没问题,但是在 yaml 配置有空格的话会报错。
调用
# type 为 2 或者 3 没有测试成功
service: shell_command.notify_wechat_post
data:
  msg: who am i
  type: 1


GET接口
此接口 message 不能有空格,GET 接口是对 POST 接口的阉割,主要是为了某些情况下调用方便,只支持对文字(contentType = 1)的发送,举例:
$ curl -G "http://wxpusher.zjiecode.com/api/send/message/?appToken=your_token&content=your_message&uid=your_uid&url=http%3a%2f%2fwxpusher.zjiecode.com"
# 或者
curl "http://wxpusher.zjiecode.com/api/send/message/?appToken=your_token&content=your_message&uid=your_uid&url=http%3a%2f%2fwxpusher.zjiecode.com"

在  configuration.yaml 中配置,需要替换 your_token 和 your_uid
# 替换 your_token 和 your_uid 为你的 token 和 uid
shell_command:
  notify_wechat_get: curl -G "http://wxpusher.zjiecode.com/api/send/message/?appToken=your_token&content={{msg}}&uid=your_uid&url=http%3a%2f%2fwxpusher.zjiecode.com"

调用
service: shell_command.notify_wechat_get
data:
  msg: IamMessage
# 或者
service: shell_command.notify_wechat_get
data: {"msg":"1234567"}
​
# 经测试传入的消息中不能有空格  



回复

使用道具 举报

74

主题

1942

帖子

7885

积分

元老级技术达人

积分
7885
金钱
5893
HASS币
430

活跃会员教程狂人

发表于 2021-8-20 19:13:31 | 显示全部楼层
这操作难度也太高了点。。。
所有过往,皆为序章。
回复

使用道具 举报

10

主题

101

帖子

1519

积分

金牌会员

Rank: 6Rank: 6

积分
1519
金钱
1418
HASS币
0
发表于 2021-8-21 15:53:46 | 显示全部楼层
先马克一下,感谢分享
回复

使用道具 举报

6

主题

53

帖子

215

积分

中级会员

Rank: 3Rank: 3

积分
215
金钱
162
HASS币
0
发表于 2022-11-12 17:44:17 来自手机 | 显示全部楼层
按楼主的方法成功了
回复

使用道具 举报

6

主题

53

帖子

215

积分

中级会员

Rank: 3Rank: 3

积分
215
金钱
162
HASS币
0
发表于 2022-11-12 22:49:36 来自手机 | 显示全部楼层
测试了下英文能正常推送,中文不行...
回复

使用道具 举报

1

主题

12

帖子

54

积分

注册会员

Rank: 2

积分
54
金钱
42
HASS币
0
发表于 2024-1-11 17:39:22 | 显示全部楼层
niubi,好用
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-29 15:57 , Processed in 0.948887 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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