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

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

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

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

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

title 推送标题 比 body 字号粗一点
body 推送内容
category 另外的功能占用的字段,还没开放 忽略就行
post 请求 参数名也是上面这些
第 2 条附言  ·  150 天前
164 回复  |  直到 2018-12-13 09:20:23 +08:00
1  2  
    101
Lentin   164 天前 via iPhone
@PHPJit 安卓的话时效性就没有了,不翻墙的话,抽疯
    102
diyisoft   164 天前 via iPhone   ♥ 1
用大佬的开源 V2EX 客户端来回大佬的帖子。赞一下。这个功能也很强大,谢谢
    103
royrs   163 天前
求各种自动化执行脚本。
    104
70599   163 天前
@finab 作者你好,这个 App 能实现以下功能吗?
1、自定义声音
2、打开链接

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

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

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

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

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

例如开发者写了一个服务器监测的脚本, 检测到服务器有问题时调用这个接口,手机就会收到服务器出问题了的推送。
    159
finab   51 天前
@ahu 只能发给自己
想发一组人得先收集这一组人的 key,然后一次发多个请求,在发送端做分组
    160
ahu   51 天前
@finab 谢谢!先这样
    161
andyhuai   24 天前
这个是走苹果的推送通道,android 无法使用,我觉得使用微信公众号的 API 比较好,全平台兼容了
    162
finab   24 天前
@andyhuai 大多数人只会用一个系统,全平台用处不大,用 iOS 的不会关心安卓支不支持
这个优点主要是苹果推送通道非常稳定快速不丢消息(从发送到收到推送不到 1s
这个 APP 也只服务 iOS 用户,安卓用户肯定是有其他选择的,只是我自用的工具分享出来所以没考虑安卓
    164
syjsu   2 天前
@mario85 大佬厉害了
1  2  
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1963 人在线   最高记录 4019   ·  
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.1 · 20ms · UTC 02:01 · PVG 10:01 · LAX 18:01 · JFK 21:01
♥ Do have faith in what you're doing.
沪ICP备16043287号-1