Bark 使用指南:如何自建 iOS 消息推送服務

文章首發於個人公號:「阿拉平平」

之前我寫過一個腳本,校驗 SSL 證書是否過期並定時將結果以郵件的形式告知。事實上,這些消息並不是那麼重要,發送郵件未免有些「重」了,將結果直接推送到自己的手機上可能更加合適。於是我找到了這款開源的消息推送服務:Bark。

項目介紹

Bark[1] 是一款開源的消息推送服務,用於給 iPhone 發送自定義的內容,支持文字和鏈接。通過部署 Bark 服務端,我們可以安全地推送一些敏感信息。

下載安裝

Bark 分爲客戶端和服務端。其中,客戶端用於接收消息;服務端用於推送消息。

客戶端

Bark 客戶端僅支持 iOS 平臺,可以到 App Store 搜索並下載。

第一次使用會要求「註冊設備」,點擊後會爲設備隨機生成一個 Key:

作者提供了服務端,運行以上鍊接就可以測試消息推送:

服務端

如果是隱私信息,最好還是通過自建 Bark 服務端[2]來推送。接下來,我們嘗試部署下服務端。

服務端的部署支持 docker 和 docker-compose,不過本身並不複雜,所以這裏我選用手動方式來安裝:

# Bark 服務端支持多平臺,根據系統下載二進制文件
wget https://github.com/Finb/bark-server/releases/download/v2.0.1/bark-server_linux_amd64

# 添加可執行權限
chmod +x bark-server_linux_amd64

# 創建數據目錄
mkidr bark-data

# 運行服務
./bark-server_linux_amd64 -addr 0.0.0.0:8080 -data ./bark-data

至此,服務端部署完成,可以運行以下命令測試服務端是否正常:

curl http://0.0.0.0:8080/ping
{"code":200,"message":"pong","timestamp":1621936667}

使用說明

在上一章中,我們安裝了客戶端,也自建了服務端。但是別忘了,我們還沒將兩者關聯起來。

添加服務器

回到 App,點擊右上角的「+」進入添加私有服務器頁面,填寫服務器地址:

注意服務器的協議和端口,填好後點擊右上角圖標確認。如果服務器校驗失敗,則無法保存。

請求參數

之前我們只是簡單地測試了客戶端接受消息,現在我們發送些帶參數的請求,來看看 Bark 還支持哪些功能。

  • 帶有標題的消息

通過在 URL 路徑上增加一個 title 來實現,形如:

/:key/:title/:body
  • 自動複製推送內容

自動複製功能適用於驗證碼推送的場景,參數如下:

  • automaticallyCopy:自動複製的開關,默認關閉。1:開啓,其它值:關閉。
  • copy:指定自動複製的內容,不指定則複製所有 body 的內容。

比如發送以下請求會自動複製 9527,無需手動複製:

https://api.day.app/yourkey/驗證碼是9527?automaticallyCopy=1&copy=9527
  • URL 跳轉

通過指定參數 url,點擊推送將跳轉到相應的網址,比如:

# 發送時,URL 參數需要編碼
https://api.day.app/yourkey/百度網址?url=https://www.baidu.com
  • 保存歷史記錄

一些推送,我們可以閱後即焚,另一些則可以選擇保存。保存與否通過 isArchive 來控制:

isArchive:1:保存,其他值:不保存。

要說明的是,如果不指定參數,是否保存則取決於 App 內的設置。相較於 App,參數具有更高的優先級,所以對於確認需要保存記錄的消息,可以這樣發送請求:

https://api.day.app/yourkey/需要保存的推送?isArchive=1

寫在最後

Bark 作爲一套開源的消息推送應用,通過自建服務端,可以提供非常及時、穩定可靠、隱私安全的推送服務。Bark 提供 http 接口,只需發送請求即可給自己的 iPhone 推送自定義的消息。

當然,Bark 的功能很簡單,推送的消息也有一定的侷限性,目前並不支持圖片、表情等。結合 Bark 使用的場景,我猜測這可能和作者設計初衷有關,Bark 目的在於替換傳統通知方式,保持簡單實用就好。

References

[1] Bark: https://github.com/Finb/Bark
[2] Bark 服務端: https://github.com/Finb/bark-server

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章