使用Pushover实现自定义通知

有时候需要在服务器上跑一个非常久的程序,但是可能遇到未知的bug,又不可能一直登录服务器去查看运行状态,很需要在程序中断的时候给自己发送通知提醒。

最近发现了一个特别好用的通知服务 Pushover,它的 API 简单易用,可以很方便的嵌入程序,从指定 Application 发送信息到指定 User。

Pushover 中你需要创建 Application,这是发消息的主体,可以理解为微信公众号,用户需要订阅Application,Application 可以通过 Pushover 的 API 向订阅该 Application 的所有用户或特定用户的特定设备发送消息。消息会推送到用户的设备上。

创建 Application

打开 Pushover,注册/登录账号,然后点击 Create an Application/API Token,填入名字,点击创建。

创建完成以后就可以看到如下图:

  • API Token/key:创建的 Application 的标识,在推送消息时需要用到
  • Subscription:Application 的订阅链接,用户需要点击这个链接在里面订阅。就像公众号的二维码
  • Licensing Credits:可以在这里购买 License,发给用户激活,这里批量购买有优惠,对于企业用户比较好,也可以用户自己购买 License,单个License价格为 $4.99

用户订阅

打开上面的链接,出现如下页面,可以设置订阅的设备和默认的铃声,订阅成功以后就可以从 Application 接受消息了。

API

它的 API 也非常简单

  • 推送URL :https://api.pushover.net/1/messages.json
  • Headers:Content-type:application/json
  • data:包括tokenuserdevicetitlemessage
    • token 就是之前的 Application token,用于标识
    • user:用户的token,可以在用户个人主页看到
    • device:指定设备
    • title:标题
    • message:消息内容

在 Python 中实现的代码如下:

1
2
3
4
import requests
headers = {'Content-Type': 'application/json'}
data = {'token': token, 'user': usertoken,'title': 'title', 'message': 'message', 'html': 1}
r = requests.post('https://api.pushover.net/1/messages.json', json=data, headers=headers)

推送效果如下:

更多 API 使用方法可以在官网上看到

使用体验

Pushover 的使用效果还是极佳的,推送速度非常快,在程序执行后大概 5 秒内就可以从手机上收到消息。此外,Pushover可以很方便的嵌入到大部分的程序中,可移植性强,可以说体验非常棒了!

比较遗憾的是,Pushover 仅支持一部分的 HTML 标签,所以推送的消息可能排版不够丰富,不过对于通知来讲足够了。

补充

最近在少数派上看到 Pushover 可以与 IFTTT 相结合,同时 iOS13 上捷径可以在特定条件下运行,感觉结合捷径和 IFTTT,Pushover 可以更加强大。