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

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

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

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 条附言  ·  264 天前
打开 APP 注册得到推送 URL 后 ,可以发 get 或者 post 请求 ,请求成功会立即收到推送

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

title 推送标题 比 body 字号粗一点
body 推送内容
category 另外的功能占用的字段,还没开放 忽略就行
post 请求 参数名也是上面这些
第 2 条附言  ·  249 天前
第 3 条附言  ·  94 天前
1.0.4 支持 automaticallyCopy 参数,携带此参数发送推送,推送内容将直接复制到粘贴板

如果是自己部署的 Bark 后端要支持这个功能,需使用最新的服务端程序
https://github.com/Finb/Bark/releases
第 4 条附言  ·  22 天前

后端支持 Docker

docker run -dt --name bark -p 8999:8080 finab/bark-server:v1.0.0
第 5 条附言  ·  22 天前

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

docker run -dt --name bark -p 8080:8080 -v `pwd`/bark-data:/data finab/bark-server
181 回复  |  直到 2019-03-15 10:58:26 +08:00
1  2  
    101
Lentin   263 天前 via iPhone
@PHPJit 安卓的话时效性就没有了,不翻墙的话,抽疯
    102
diyisoft   262 天前 via iPhone   ♥ 1
用大佬的开源 V2EX 客户端来回大佬的帖子。赞一下。这个功能也很强大,谢谢
    103
royrs   262 天前
求各种自动化执行脚本。
    104
70599   262 天前
@finab 作者你好,这个 App 能实现以下功能吗?
1、自定义声音
2、打开链接

目前在用 pushover,pushover 可以有限自定义声音,但是不能定义来电铃声长度的声音。
所以我不得不转发一个邮件,让邮件触发长铃声来达到提醒目的。
    105
tinytin   261 天前
马克
    106
tinytin   261 天前
@falcon05 server 酱用微信好处是跨平台
    107
finab   261 天前 via iPhone   ♥ 1
@70599 打开链接即将支持,在审核了最近两天应该会更新到商店。
自定义声音不支持。
不过你有开发者账号的话下载源码稍微加几行代码就能自己支持上了。自定义声音时长好像是限制 30 秒以内,并且不能循环播放,起不到提醒的作用

这个 app 只适合推送一些不重要的简单的通知,专业复杂的我觉得并不合适吧
    108
gswxy   260 天前 via iPhone
多次出现{"code":400,"data":null,"message":"与苹果推送服务器传输数据失败"}

用的编译的版本 。
    109
bobsam   260 天前   ♥ 2
哇,原来你是 iOS V2EX 的软件的作者啊!我现在在用着你的客户端!支持一波~
    110
finab   260 天前
@gswxy
编译的版本是我提供的那些?
你运行的时候有记录控制台打印日志么? 上面有详细原因, 错误信息前缀 Error:
    111
gswxy   260 天前 via iPhone
@finab 你编译好的版本 。没记录日志。
    112
finab   260 天前
@gswxy 你记录下日志吧

nohup ./Bark_linux_amd64 -ip=0.0.0.0 -port=8080 &
我一般这样运行,然后日志保存在同目录下 nohup.out 里

我刚在我服务器上 grep 了一下,只发现一条错误日志,大概长这样
2018/06/30 23:20:22 Error: Post https://api.push.apple.com/3/device/2dac2f77c0e030d4a07535ad4264d05abda6808162e499f193bbc6973e72a6d6: dial tcp 17.188.148.26:443: i/o timeout
    113
gswxy   260 天前 via iPhone
@finab 嗯 等记录看看什么情况 。v2ex 签到脚本可以共享下?不甚感谢 。
    114
finab   260 天前
@gswxy 我不用签到脚本 - -,图片上的那个是我随便写的用例😓
    115
gswxy   260 天前 via iPhone
@finab 看了下日志 应该是苹果那边没通过导致的
    116
finab   260 天前
@gswxy 苹果那边没通过? 是网络原因还是?
    118
70599   260 天前
@finab 没有开发者账户。30 秒以内 /不循环播放我是可以接受的,如果您有兴趣的话,期待加入相应特性。
    120
mayuko2012   259 天前
太赞了!
以前为了自定义通知用的企业微信来接受推送,现在可以更加方便了~
    121
metrue   259 天前
试玩了一把,自己 build iOS app 然后部署 server,可以遇到下面的错误信息。有同学知道什么原因吗?
{"code":400,"data":null,"message":"推送发送失败 DeviceTokenNotForTopic"}
    122
finab   258 天前 via iPhone
@metrue 需要去开发者中心申请自己的推送证书喔
    123
gswxy   257 天前 via iPhone
@finab 现在完全不知道它何时工作 。😄 不知道其他人是不是这样 。
    124
doudouwu   257 天前
我记得 IFTTT 好像可以实现这个需求吧
    125
xlvecle   255 天前   ♥ 2
楼主这个非常赞啊,用了有一周了,有复制之后更好用了👍
帮你撸了一个 chrome 插件,https://www.v2ex.com/t/469956
    126
34C   255 天前
@sampeng 真杠精,这么能杠,你没需要不代表别人不需要好吧,神特么各种基于你自己的设定
    127
Lentin   255 天前
@finab 如果没有推送证书是不是就无法搭建 server ?
    128
finab   255 天前 via iPhone
@Lentin 提供了编译好了的后端程序,自己编译的话就需要证书了
    129
Lentin   255 天前 via iPhone
@finab 找到了 多谢
    130
fuwu1245   254 天前
LZ 能帮忙编译一个 Linux i386 版本的执行文件么?
自己编译了下 扔到服务器上 提示 cer error
    131
fuwu1245   254 天前
...看了回复 貌似是证书的问题
    132
finab   254 天前
    133
internelp   249 天前
不错不错,楼主牛逼。
很有用的东西。
    134
autoxbc   247 天前
我点击注册设备后,生成的 key 是空的

https://i.loli.net/2018/07/19/5b5022c607e35.jpg
    135
finab   247 天前
@autoxbc 重进下 APP 试试,有可能第一次没网络权限的时候没获取到 key
    136
autoxbc   247 天前
@finab #135 解决了,多谢。我试了 3 次把 app 删掉重装,却一次也没试过关掉重进 ^_^。不过,还是建议有个异常处理
    137
finab   247 天前
@autoxbc 是的,我手机不弹网络权限,所以忽略了这个 BUG
    138
autoxbc   247 天前
很好用,如果能在通知部分用等宽体,使得红圈部分可以对齐就更好了

https://i.loli.net/2018/07/19/5b50361b34e8a.png
    139
finab   247 天前
@autoxbc
这里的 UI 不能控制。
如果越狱了可以把系统字体改成等宽字体就能对齐了,没越狱就没啥办法
    140
foxni   247 天前
自己部署的服务端,一直提示 BadDeviceToken。。。
    141
foxni   247 天前
{"code":400,"data":null,"message":"推送发送失败 BadDeviceToken"}
    142
finab   247 天前 via iPhone   ♥ 1
@foxni iOS 端是自己编译的吗
    143
foxni   246 天前
@finab 不是啊,app store 下的,服务端是部署在国外的一台 vps 上,debian 32 位。
    144
finab   246 天前 via iPhone   ♥ 1
@foxni 后端是下载我编译好的还是自己编译的?
    145
foxni   246 天前
@finab 也是下的编译好的,都是通过上面给的链接跳过去的。
    146
finab   246 天前   ♥ 1
@foxni 好像 linux_386 版打包时证书用错了
我重新编译了一遍,测试了下可以用了,你更新下试试看还有没有问题
https://github.com/Finb/Bark/releases/download/1.0.0/Bark_linux_386
    147
foxni   246 天前
@finab 非常感谢,已经通了。
    148
frozenthrone   246 天前
土问,ifttt 上自己弄了一个 applet,是公开的?其他人都能看到?
    149
blaxmirror   245 天前
简直太好用了,特地回来点赞
    150
Athrob   243 天前
收费版建议
1. 增加通知记录, 就是打开后可以看到之前收到的通知.
2. 增加安卓平台的支持
3. 支持短信 /电话方式通知
4. 做个比较完善的管理后台
5. 提高服务稳定性
哇咔咔, 仿佛看到数月后, 国内又多了一家有爱的创业公司.
    151
MangozZ   223 天前
不懂 ios 开发。
请问下是什么功能会要求 ios10 呢 - -
有个 ios7 用不了心痛。。
    152
finab   222 天前
@MangozZ 有个推送操作至少需要 iOS10 - -
    153
flowfire   198 天前 via iPhone
Material design 可还行。。
    154
gswxy   181 天前 via iPhone
12 下 url copy 失效了?
    155
finab   181 天前
@gswxy 没有呀
    156
ahu   157 天前
研究了一上午,不错!
相比 pushover,免费的,好!
现在是只能发给自己,如何实现发给一组人?@finab
    157
Chan6   151 天前
不是开发,楼主这个东西能不能用一个案例介绍下怎么用(或者使用说明文档)?也想定制一些专属的通知,谢谢~
    158
finab   150 天前
@Chan6
不是开发的话基本用不着这个
这个主要是提供一个发送推送的接口供开发者调用

例如开发者写了一个服务器监测的脚本, 检测到服务器有问题时调用这个接口,手机就会收到服务器出问题了的推送。
    159
finab   150 天前
@ahu 只能发给自己
想发一组人得先收集这一组人的 key,然后一次发多个请求,在发送端做分组
    160
ahu   150 天前
@finab 谢谢!先这样
    161
andyhuai   123 天前
这个是走苹果的推送通道,android 无法使用,我觉得使用微信公众号的 API 比较好,全平台兼容了
    162
finab   123 天前
@andyhuai 大多数人只会用一个系统,全平台用处不大,用 iOS 的不会关心安卓支不支持
这个优点主要是苹果推送通道非常稳定快速不丢消息(从发送到收到推送不到 1s
这个 APP 也只服务 iOS 用户,安卓用户肯定是有其他选择的,只是我自用的工具分享出来所以没考虑安卓
    164
syjsu   100 天前
@mario85 大佬厉害了
    165
kba977   96 天前
@finab 作者你好,一直再用 bark,很好用,有个小需求不知能实现不,在 mac os 和 iphone 之间,mac 复制一段话,iphone 这边会接力直接粘贴到 iphone 的剪切板
现在的问题是 我在 windows 下也想达到这样的效果,写了个脚本快捷键触发,获取剪切板然后通过 bark 发消息到手机上,每次要下拉才能复制,能否在 bark 上设置一个开关,默认收到消息自动粘贴到剪贴板上,这样就很完美了
    166
finab   96 天前
@kba977 可以的 ,你把你邮箱给我,我邀请你加入 TF 先试试
    167
kba977   96 天前
@finab #166 好的 谢谢, 邮箱 用户名+gmail
    168
finab   94 天前
@kba977 TF 审核和 App Store 一起上了,可以直接在商店更新了
推送时 携带参数 automaticallyCopy=1,推送就会自动粘贴到剪贴板上
    169
kba977   94 天前
@finab #168 可以啦 谢谢! 更新速度很快 Thanks♪(・ω・)ノ
    170
finab   94 天前
@kba977 客气~ 我自己也经常用这个推一些文本,但没想过更进一步连复制都省掉,多亏你提的需求
    171
kba977   94 天前
@finab #170 哈哈 我也是从苹果转到 windows 上很不适应,之前都是无缝复制,找了很多替代品,发现你这个很简洁,就是每次复制要点那么一下,另外就是,如果加上这个参数,能默认就不通知了么,就真的无缝啦 哈哈
    172
finab   94 天前
@kba977 静默推送有限制,可能有时候不执行复制的代码,不太好控制
    173
kba977   94 天前
@finab #172 好吧,不过也已经很棒啦,满足需求了,嘿嘿
    174
terencehan   69 天前
和 12306bypass 结合就好了
    175
mywaiting   54 天前
用得很舒服,回来挖坟,写个感谢 ;)
    176
steveway   53 天前
@densuc #68 很不好意思挖了坟 请问 gcmformojo 的 demo 可以分享一下吗 谢谢
    177
MisterGlasses   30 天前 via Android
能布属在路由器中吗 梅林固件
    178
finab   30 天前
@MisterGlasses

是部署后端程序吗?

Linux/arm 版能用么?
https://github.com/Finb/Bark/releases/download/1.0.0/bark_linux_arm
    179
ddeef   22 天前   ♥ 2
使用 Quicker 软件在 Windows 上可以选中文字后一键发送到 Bark。
已分享动作:
https://getquicker.net/Sharedaction?code=e927d844-d212-4428-758d-08d69de12a3b
    180
mikaelson   12 天前
先谢谢大佬的工具。然后我有个 https 的问题,不知道怎么解决。
我服务器上部署了 apache,域名指向了服务器,现在 https 访问域名能看到 apache test 页面
但是在 ios 的 bark 上填 http 地址能用,https 就提示填写的服务器无效。请问是我 https 的搭建错误么?
    181
coosir   8 天前
要是通知过来的消息都能在 APP 中存储就好了,通知的作用毕竟是提醒
1  2  
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   947 人在线   最高记录 4385   ·  
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 25ms · UTC 18:47 · PVG 02:47 · LAX 11:47 · JFK 14:47
♥ Do have faith in what you're doing.
沪ICP备16043287号-1