V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
finab
V2EX  ›  分享创造

分享个自用的小工具~ 给你的 iPhone 发自定义推送

  finab · 2018-07-02 11:27:21 +08:00 · 36714 次点击
这是一个创建于 1209 天前的主题,其中的信息可能已经有所发展或是发生改变。
我有些自动提醒只是想看一眼,看完划掉就删了~
邮件或聊天软件做提醒都稍微重了一点,

iPhone 消息推送可靠不丢数据、实时性也比较好,正好合适。
所以这个 APP 就诞生了, 使用简单 http 请求给自己的 iPhone 发推送

自用了几个月,还算稳定没掉过通知,分享出来给有需要的 V 友。免费并提供源码和后端程序

如果你的**数据敏感**,可以在自己的主机上部署后端程序,这样数据只在 你的手机、你的主机、Apple 推送服务器之间传输,非常安全 。App 内点添加私有服务器有文档

使用示例


AppStore 连接
https://itunes.apple.com/cn/app/bark-customed-notifications/id1403753865

App 源码
https://github.com/Finb/Bark
后端源码
https://github.com/Finb/go-tools/blob/master/Bark.go
第 1 条附言  ·  2018-07-02 13:30:27 +08:00
打开 APP 注册得到推送 URL 后 ,可以发 get 或者 post 请求 ,请求成功会立即收到推送

URL 组成: 第一个部分是 key , 之后有三个匹配
/:key/:body
/:key/:title/:body
/:key/:category/:title/:body

title 推送标题 比 body 字号粗一点
body 推送内容
category 另外的功能占用的字段,还没开放 忽略就行
post 请求 参数名也是上面这些
第 2 条附言  ·  2018-07-17 18:10:17 +08:00
第 3 条附言  ·  2018-12-19 11:37:37 +08:00
1.0.4 支持 automaticallyCopy 参数,携带此参数发送推送,推送内容将直接复制到粘贴板

如果是自己部署的 Bark 后端要支持这个功能,需使用最新的服务端程序
https://github.com/Finb/Bark/releases
第 4 条附言  ·  2019-03-01 15:15:57 +08:00

后端支持 Docker

docker run -dt --name bark -p 8999:8080 finab/bark-server:v1.0.0
第 5 条附言  ·  2019-03-01 17:18:05 +08:00

docker 挂载本地目录, 保存 bark.db 文件

docker run -dt --name bark -p 8080:8080 -v `pwd`/bark-data:/data finab/bark-server
第 6 条附言  ·  2020-06-01 09:05:12 +08:00
新增保存历史通知的功能。

使用方法:
在推送 URL 中添加 isArchive 参数。
isArchive = 1 时通知将被保存,为其他值时则不会被保存。

或者在历史消息 - 设置 中打开默认保存

保存在本地的通知消息历史非常安全。
通过 NotificationServiceExtension 扩展,在收到推送时,将推送信息保存在本地,不会经过其他任何设备。
历史记录仅由个人 iCloud 私有库进行同步。
可以确保你产生的任何通知,将只留在你的设备与你的 iCloud 中
212 条回复    2021-07-06 23:20:43 +08:00
1  2  3  
Smilecc
    1
Smilecc   2018-07-02 11:33:49 +08:00
感觉挺有意思的
x7395759
    2
x7395759   2018-07-02 11:37:43 +08:00
IFTTT 了解一下
x537196
    3
x537196   2018-07-02 11:38:00 +08:00
mark
finab
    4
finab   2018-07-02 11:43:21 +08:00
@x7395759 唔~,和这个没啥交集吧? - -
fakeJas0n
    5
fakeJas0n   2018-07-02 11:43:21 +08:00
感觉有点意思
x7395759
    6
x7395759   2018-07-02 11:47:40 +08:00
@finab #4 给 IFTTT 发一个 http 请求推送消息呀
falcon05
    7
falcon05   2018-07-02 11:48:54 +08:00 via iPhone
api.day.app
服务器错误,不能使用推送服务……
falcon05
    8
falcon05   2018-07-02 11:52:06 +08:00 via iPhone
@falcon05 翻墙之后可以了,深圳移动
veightz
    9
veightz   2018-07-02 11:56:24 +08:00 via Android
我觉得还是蛮有意思的,应该还能发掘更多的场景
falcon05
    10
falcon05   2018-07-02 11:58:43 +08:00 via iPhone   ❤️ 2
很好的工具,像 Server 酱,但不限于微信,也可以自己掌控服务端。感谢
NFC
    11
NFC   2018-07-02 12:14:50 +08:00 via iPhone
赞一个
有个问题 如果推送的内容含有多个 / 会出问题啊。
finab
    12
finab   2018-07-02 12:15:32 +08:00
@x7395759 我擦,是可以这样做嘛? 那确实是一样的效果

@veightz 之前想了很多收到推送之后的交互,还把界面写在推送里,收到推送后不用打开 APP 就能操作
后来觉得使用起来有点复杂就算了~ 就简简单单做了个通知,我最主要也就是用这个,不折腾了

@falcon05 发通知的主机能连上就行,APP 只能能连一次就 OK 了。最好当然是能把后端部署到自己的主机上,就不存在网络问题了😀
finab
    13
finab   2018-07-02 12:19:24 +08:00   ❤️ 2
@NFC
你拼接的时候最好能转义一下
或者用 post 请求 字段名是 title 和 body

URL 有三个匹配,多加了 / 可能会匹配错了
/:key/:body
/:key/:title/:body
/:key/:category/:title/:body
0312birdzhang
    14
0312birdzhang   2018-07-02 12:35:35 +08:00   ❤️ 10
没有人在意那个“暗恋 9 年的女神发了新朋友圈:今天我结婚了!” 吗?
心疼楼主 1s
ifoolish
    15
ifoolish   2018-07-02 12:40:11 +08:00   ❤️ 3
支持!一直在用楼主开发的 v2 iOS 客户端
AlphaTr
    16
AlphaTr   2018-07-02 12:50:28 +08:00 via iPhone
赞一个,收下了试试
j0hnj
    17
j0hnj   2018-07-02 12:55:44 +08:00 via iPhone
我一般都是用 slack 的 推送接口
Plsea
    18
Plsea   2018-07-02 13:15:13 +08:00
谢谢 LZ,ps:能不能搞个定时推送的功能
finab
    19
finab   2018-07-02 13:22:40 +08:00
@0312birdzhang 只是抖个机灵,展示下通知效果 😀

@Plsea 不行喔~APP 端推送何时收收到啥,都需要在你主机上的实现。你需要定时推送的话,只需要在你主机上设置一个定时任务,到时间了请求下你的推送 URL 就行 ,要不你用下 crontab 我觉得能很简单的实现
blufaux
    20
blufaux   2018-07-02 13:26:08 +08:00
ifttt 的其他功能功能太多,喜欢楼主的这个,希望能在通知上丰富一下功能
May725
    21
May725   2018-07-02 13:30:04 +08:00 via iPhone
很有用,
blufaux
    22
blufaux   2018-07-02 13:30:24 +08:00
能推送图片吗?
WHOISYOURDaddy
    23
WHOISYOURDaddy   2018-07-02 13:37:59 +08:00
心疼楼主 1s
mritd
    24
mritd   2018-07-02 13:38:58 +08:00 via iPhone
诶呀 牛逼牛逼
双击 666666
mritd
    25
mritd   2018-07-02 13:40:15 +08:00 via iPhone
App 最大的败笔就是内部风格跟图标 完全不搭嘎
finab
    26
finab   2018-07-02 13:40:19 +08:00
@blufaux 什么场景呢?
我之后可能会扩展一个 url 字段,点击推送会用 safari 打开某个 URL。
我觉得最多这样子了,毕竟是为了轻量推送通知,复杂了感觉其他途径更好点
finab
    27
finab   2018-07-02 13:40:46 +08:00
@mritd 你揍凯,不就没给你点外卖嘛
lixile
    28
lixile   2018-07-02 13:49:40 +08:00
@finab 莫非是好基友?
finab
    29
finab   2018-07-02 13:55:18 +08:00
@lixile 是的😀
Telegram
    30
Telegram   2018-07-02 14:04:47 +08:00 via iPhone
好东西,收藏
20150517
    31
20150517   2018-07-02 14:27:54 +08:00 via Android
不就是 pushover 么
silentstar
    32
silentstar   2018-07-02 15:21:57 +08:00
哎?试试看。
silentstar
    33
silentstar   2018-07-02 15:24:13 +08:00
美区刚提交啊,还没评论。
titachi
    34
titachi   2018-07-02 15:28:03 +08:00
微软的 Flow 了解一下
love8
    35
love8   2018-07-02 15:34:34 +08:00
建议做个网页前端 简便自定义推送
bao3
    36
bao3   2018-07-02 16:02:52 +08:00
感谢楼上,终于有一个可以自己掌控的服务端和客户端了。
blufaux
    37
blufaux   2018-07-02 16:39:22 +08:00 via iPhone
@finab 苹果推送是支持图片的,有时候给自己过别人推送这个还挺好玩的
finab
    38
finab   2018-07-02 16:47:28 +08:00
@blufaux 哈哈,如果要玩的话,推送里还能放视频,甚至。。还能放个小游戏~ iOS10 之后推送界面就可编程了。
blufaux
    39
blufaux   2018-07-02 16:54:36 +08:00
@finab 这多有意思,我没发现 ifttt 可以给自己推送自定义消息
zjb861107
    40
zjb861107   2018-07-02 17:10:32 +08:00
直接下载信鸽的 demo 就可以了吧!!支持 Android 各大厂商推送和 ios,服务端有各种语言 SDK,可以根据自己需要定制
kera0a
    41
kera0a   2018-07-02 17:25:04 +08:00 via iPhone
@zjb861107 需要有苹果开发者账号,然后用这个账号去编译那个 demo,然后签名,还得用这个账号生成推送证书,创建信鸽账号,把证书上传到信鸽,生成 key 替换到 app 运行,打印 id,这之后才能推了
killerv
    42
killerv   2018-07-02 17:34:38 +08:00
有意思,可以做很多事
Aphsss
    43
Aphsss   2018-07-02 17:38:13 +08:00
我能在这许愿个安卓版的么
hqdmy
    44
hqdmy   2018-07-02 17:48:05 +08:00
这个有什么用啊?可以做什么
Sylv
    45
Sylv   2018-07-02 17:50:09 +08:00 via iPhone
不知道楼主了解过 Pushover 没?感觉没必要重新造个轮子。
https://pushover.net
pierrec
    46
pierrec   2018-07-02 17:50:44 +08:00
微信朋友圈都可以?
finab
    47
finab   2018-07-02 17:54:54 +08:00
@Sylv
这个要简单很多,打开即用。并且可以将服务端部署到自己的服务器,防止隐私泄露或网络问题。
Pushover 可以满足更复杂的需求,但这个也是有小众需求的
finab
    48
finab   2018-07-02 17:55:49 +08:00
@pierrec 能做什么取决于用户,本质上就是个消息推送器
Zzdex
    49
Zzdex   2018-07-02 18:08:21 +08:00
推送历史看不到吗?
bigwang
    50
bigwang   2018-07-02 18:23:34 +08:00
很赞
早就想做个这样的服务了
zuston
    51
zuston   2018-07-02 18:26:19 +08:00
无法看通知具体详情吧,许愿最好有一个推送历史查询和通知详情。
SoulGem
    52
SoulGem   2018-07-02 18:32:22 +08:00 via iPhone
@Sylv 这个安卓上貌似国内的不能推送?
yimaneilicj
    53
yimaneilicj   2018-07-02 18:42:52 +08:00
👍 mark
cnyang
    54
cnyang   2018-07-02 19:17:51 +08:00
ifttt 推送延迟平均超过一分钟,且网站,app 端均有不可删的详细历史日志,一直想找个类似更简洁的
感谢楼主
comesx4
    55
comesx4   2018-07-02 20:12:29 +08:00
点赞点赞!
MOmc
    56
MOmc   2018-07-02 20:39:23 +08:00 via iPhone
不错不错,谢谢提供哈~
Lentin
    57
Lentin   2018-07-02 20:47:24 +08:00
可以加一个给通知附带个链接吗?比如把 PC 上当前浏览的网页推送过去,这样岂不是美滋滋~
https://www.v2ex.com/t/448807
Lentin
    58
Lentin   2018-07-02 20:49:22 +08:00
另外图标建议弄成灰色等不那么……抢眼球的颜色图标……
killerirving
    59
killerirving   2018-07-02 21:16:32 +08:00
私人服务器需要 https 吗?
kera0a
    60
kera0a   2018-07-02 21:25:06 +08:00 via iPhone
@killerirving http 也行的,只不过相当于明文传输了你的推送信息。如果发推送的服务器和收推送的服务器是一台服务器,http 就没任何问题
shanxuefeng
    61
shanxuefeng   2018-07-02 21:27:29 +08:00
很好,点赞点赞!
yeeyeung
    62
yeeyeung   2018-07-02 22:05:06 +08:00
卧槽超棒的,可以给老妈发提醒了!
huclengyue
    63
huclengyue   2018-07-03 00:03:53 +08:00 via Android
这个不是类似 ifttt 的功能?
Tink
    64
Tink   2018-07-03 00:22:31 +08:00 via iPhone
和 pushover 类似吧
dream7758522
    65
dream7758522   2018-07-03 00:46:44 +08:00 via Android
顺便做个安卓客户端吧
killerirving
    66
killerirving   2018-07-03 01:10:54 +08:00
@kera0a 感谢楼主 试了一下 请求接口返回 {"code":400,"data":null,"message":"与苹果推送服务器传输数据失败"}
finab
    67
finab   2018-07-03 05:24:15 +08:00 via iPhone
@killerirving 你用的自己编译的还是我提供的程序?
densuc
    68
densuc   2018-07-03 09:01:16 +08:00 via iPhone
@Aphsss 安卓版可以用小米系统级推送这样应用 加上 gcnformojo
需要的话我写过 demo
可以共享出来(≧▽≦)
hugo2lee
    69
hugo2lee   2018-07-03 09:14:01 +08:00
求安卓端, pushbullet 要 Google 服务而且是别人的的服务器, 楼主这个就很轻便了
s2555
    70
s2555   2018-07-03 11:25:09 +08:00
谢谢楼主,收藏先,会用到的
claymore94
    71
claymore94   2018-07-03 11:54:30 +08:00
有个地方没理解 推送消息这里是自己填写的? 像楼主这样 怎么自动化的监控其他应用消息并推送?
sampeng
    72
sampeng   2018-07-03 12:05:35 +08:00
pushover 10 块钱解决的问题。没必要花太多精力去处理。。。
finab
    73
finab   2018-07-03 12:06:59 +08:00
@claymore94 那些是一些定时自动执行的脚本,放在自己的服务器上的,脚本运行完了把结果推送到 iPhone。
这个软件的作用就是用 HTTP 接口把一段文字推送到 iPhone。至于是什么文字就自己决定了
finab
    74
finab   2018-07-03 12:08:16 +08:00   ❤️ 2
@sampeng
这个 APP 0 元,
这个 APP 打开即用比 pushover 简单
这个 APP 后端可部署在自己服务器上
dingdangnao
    75
dingdangnao   2018-07-03 12:09:50 +08:00
突然想到。我们来交换 key 聊天吧😂
sampeng
    76
sampeng   2018-07-03 12:17:37 +08:00
@finab 推送消息没有私密性的要求吧。。。推送个密码?
leafleave
    77
leafleave   2018-07-03 12:21:43 +08:00 via iPhone
加一个复制按钮如何?有时候要复制推送内容
finab
    78
finab   2018-07-03 12:21:49 +08:00
@sampeng 我有一些社交软件上的特别关注,本身 APP 不带特别关注功能
有一些域名即将到期的监控,即将到期时会通知我去抢注,这些我也不想被人看到
看对数据的敏感程度吧,我个人是很需要的
finab
    79
finab   2018-07-03 12:23:30 +08:00
@leafleave get,之后的版本下拉推送或锁屏左滑,会弹出复制选项
swylg
    80
swylg   2018-07-03 12:25:49 +08:00 via iPhone
m
zhandi
    81
zhandi   2018-07-03 12:27:39 +08:00 via iPhone
nice,感谢
sampeng
    82
sampeng   2018-07-03 12:28:08 +08:00
@finab
根据时间来推送的,请用日历。0 延迟
社交软件的特别关注。。就是你这个截图的暗恋 9 年的菇凉结婚了?扎心不。。。。来,说出你的故事。
其实 pushover 我都用的少,最多家里自动电影下载机有我要追的剧下完了通知一下。。。完全想不出有别的使用场景。通知还是越少越好。。。干扰太多,分心。如果不是要收验证码,我连短信的通知都想关掉。
neilp
    83
neilp   2018-07-03 12:34:02 +08:00 via iPhone
这个要支持
geekcorn
    84
geekcorn   2018-07-03 12:34:12 +08:00 via iPhone   ❤️ 1
感谢楼主大大会用的,然后正在用你写得 ios 客户端发帖
finab
    85
finab   2018-07-03 12:35:15 +08:00
@sampeng 我大部分任务都是定在星期 1 上午 10 点,所以打扰到没有多少。
大部分任务都是要执行代码的,日历也做不到,时间提醒我需求不大。

少年,等你要追妹子了,就知道特别关注的好了
claymore94
    86
claymore94   2018-07-03 12:51:59 +08:00
@finab 原理我理解, 我只是好奇 要自动化 抓取应用和 web 网页的内容
SingeeKing
    87
SingeeKing   2018-07-03 13:01:46 +08:00
建议加上点进去可以看到推送的详细内容吧,最好有历史。。
metrue
    88
metrue   2018-07-03 13:34:43 +08:00
看上去很棒,最近也有做一个通知器的想法,可以借鉴楼主的了。
hackpro
    89
hackpro   2018-07-03 14:15:59 +08:00 via iPhone
各位有什么好用的模板可以分享吗?
gswxy
    90
gswxy   2018-07-03 14:42:59 +08:00 via iPhone
求各种自动化执行脚本。
xiaozizayang
    91
xiaozizayang   2018-07-03 16:08:37 +08:00
@yeeyeung 这么激动?发短信 发微信都行啊
KiseXu
    92
KiseXu   2018-07-03 16:18:15 +08:00
好东西,想要很久了,希望早日支持付费
KiseXu
    93
KiseXu   2018-07-03 16:24:17 +08:00
如果推送的内容,在本地留一份,可以看历史推送就好了
X-Force
    94
X-Force   2018-07-03 16:59:14 +08:00
可以考虑做成付费,然后增加 Android 端,服务器端增加 PHP 版,毕竟是最好的语言。就完美了……
jiangnana
    95
jiangnana   2018-07-03 17:04:50 +08:00
要充电了
lauix
    96
lauix   2018-07-03 18:49:20 +08:00
之前用微信实现的。你这个很棒,有空研究研究。
mritd
    97
mritd   2018-07-03 19:36:46 +08:00 via iPhone
作为好基友说一下我的使用: 目前 写了个程序自动检测 局域网梯子,3 次失败 webhook 告警🙃
yeeyeung
    98
yeeyeung   2018-07-03 19:37:25 +08:00
@xiaozizayang 短信要钱,老人都不爱。微信消息太多容易把提醒冲掉。这个推送可以自己选择删除或者不删
PHPJit
    99
PHPJit   2018-07-03 19:50:44 +08:00 via Android
求安卓端
PHPJit
    100
PHPJit   2018-07-03 20:18:13 +08:00 via Android
后端有其他语言吗?
1  2  3  
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   996 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 20:33 · PVG 04:33 · LAX 13:33 · JFK 16:33
♥ Do have faith in what you're doing.