前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS中的Bark及Bark Server搭建、安装和使用全指南

iOS中的Bark及Bark Server搭建、安装和使用全指南

作者头像
不止于python
发布2024-02-22 15:35:02
5440
发布2024-02-22 15:35:02
举报
文章被收录于专栏:不止于python不止于python

引言

最近在找一个能实时通知的消息的工具。想到了使用企业微信, 钉钉等办法申请一个key就可以实现。但个人的话还是有些困难。 突然发现了Bark这个神器,优点是

  • 免费、轻量!简单调用接口即可给自己的iPhone发送推送。
  • 依赖苹果APNs,及时、稳定、可靠
  • 不会消耗设备的电量, 基于系统推送服务与推送扩展,APP本体并不需要运行。
  • 隐私安全,可以通过一些方式确保包含作者本人在内的所有人都无法窃取你的隐私。

但是缺点就是只支持苹果, 不过实现起来超级简单且方便

Bark官网 https://bark.day.app/#/?id=bark

Bark安装

安装超级简单, 直接打开App Store -> 搜索 Bark

https://apps.apple.com/us/app/bark-customed-notifications/id1403753865 apple.com

测试

第一次打开页面什么也没有, 点击页面的注册设备, 会为设备随机分配一个密钥。创建后就长这个样子,第一次打开是开发者自己的服务器(api.day.app), 这是搭建的私有化地址, 下面会介绍如何搭建

复制一个链接, 在浏览器打开后, 就可以看到效果了, 在手机就能接到通知的内容

到这里就可以实现在项目中出现问题时, 实时通知开发者的功能了。如果没有其它要求就可以不往下看了

Bark Server部署

Bark Server是Bark的服务端组件。用户可以选择使用Bark官方服务器,或自行搭建私有服务器。自建服务器提供更高的隐私保护和定制化设置。

代码语言:javascript
复制
mkdir bark && cd bark
curl -sL https://git.io/JvSRl > docker-compose.yaml
docker-compose up -d

docker-compose.yaml(防止链接失效)

代码语言:javascript
复制
version: '3.8'
services:
  bark-server:
    image: finab/bark-server
    container_name: bark-server
    restart: always
    volumes:
      - ./data:/data
    ports:
      - "8080:8080"

测试是否部署成功

代码语言:javascript
复制
curl http://0.0.0.0:8080/ping

响应

代码语言:javascript
复制
{"code":200,"message":"pong","timestamp":1706457087}

看到这样的响应就是搭建成功了, 就可以正常使用了

Bark关联Server服务

然后在app中右上角添加服务器, 填入服务器地址和端口号

代码语言:javascript
复制
http://xxx.xxx.xxx.xxx:8080

就OK了, 复制链接到浏览器进行测试, 同样可以接收到消息

优化BarkServer

还可以再优化一下, 给BarkServer服务配置一个域名(有条件的情况下)

在nginx中添加配置

代码语言:javascript
复制
server
    {
        listen 80 http2;
        listen 443 ssl http2;
        
        server_name xxxx.mehaei.com;
         ssl_certificate    /www/xxxx.pem;
        ssl_certificate_key    /www/xxxxx.key;
        if ($server_port !~ 443){
            rewrite ^(/.*)$ https://$host$1 permanent;
        }
        location / {
            proxy_pass http://127.0.0.1:8080/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

在腾讯云中配置二级域名, 以前写过, 就不再重复了(文末链接)

接下来同样的步骤, 将域名服务器列表中, 同样会生成一个新的密钥, 复制到浏览器进行测试

代码语言:javascript
复制
接下来我们将这个服务用起来,添加到实际应用中。封装一小小段代码


# -*- coding: utf-8 -*-
# @Author: Mehaei
# @Date: 2024-01-29 00:02:06
# @Last Modified by: Mehaei
# @Last Modified time: 2024-01-29 00:10:18

import requests
import time
import logging


def notice(title, message):
    """
    :param title: message title
    :param message: notice message info
    """
    """
    URL: 服务器的地址. https://xxxx.mehaei.com
    TOKEN: Bark生成的密钥
    """
    url = f"{URL}/{TOKEN}/{title}/{message}"
    for num in range(100):
        try:
            result = requests.get(url)
            logging.info(f"推送消息成功")
            logging.info(result)
            return True
        except Exception as e:
            logging.info(f"第{num}次推送消息失败:{str(e)}")
            time.sleep(2)


if __name__ == "__main__":
    notice("TEST", "HeiHeiHei")






总结








Bark Server为iOS用户提供了一个强大且灵活的通知系统。通过自建服务器,就可以享受更为安全和个性化的通知服务。Bark还支持多种参数,实现分组、自动复制、等级等功能, 还可以实现打开其它app记录通知消息等等功能。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不止于python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档