Bark 使用指南:搭建私有 iOS 消息推送服务

Bark 可以通过浏览器、脚本、各种程序来给 iOS 设备发送消息通知。搭建Bark私人服务器,所有数据将只在 你的手机、服务器、Apple推送服务器之间传输。针对个人隐私数据也可以在推送前进行加密处理。

典型的使用场景:我有些自动提醒,当收到通知后看一眼,看完就划掉删了~

一、拉取镜像

docker pull finab/bark-server

二、安装程序

服务端安装
docker run -dt \
--name bark \
-p 8080:8080 \
-v /data/bark:/data \
finab/bark-server
移动端安装,可直接到 App Store 搜索并下载

三、常用发送模板

消息体中遇如下字符需要进行url-encoder 转义:/ 为%2F 、空格符 为%20
详细参数见:官方文档
普通消息:http://ip:8080/your_key/标题/内容
分组消息:http://ip:8080/your_key/标题/内容?group=组名称
可带图标:http://ip:8080/your_key/标题/内容?icon=图标地址
通知铃声:http://ip:8080/your_key/标题/内容?sound=xxxxxx

四、WP接入通知

编辑主题目录下的functions.php 文件,在末尾添加以下内容,根据自身情况替换相应参数
/**
 * WordPress Bark 推送评论通知
 * 
 * $comment 评论结构
 * $post_name       被评论的文章
 * $bark_key        bark token
 * $bark_icon       bark 推送图标
 * $bark_group      bark 群组
 * $bark_goto_url   bark 文章链接
 * $bark_sound      bark 推送声音
 * $bark_archive    bark 保存信息   1-启用 0-停用 启用后客户端自动保存推送信息
 * $isMyself        检测作者ID      1-启用 0-停用 启用后当评论者为 $customName 时不通知 
 * $customName      作者评论ID      如果此值为空,则停用检测
 * 
 **/

function bark_push_msg($comment, $post_name)
{
        $bark = "https://api.day.app/";
        $bark_key = "********";
        $bark_icon = "";
        $bark_group = "Blog";
        $bark_goto_url = get_permalink( $comment->comment_post_ID );
        $bark_sound = "gotosleep";
        $bark_archive = "1";
        $isMyself = "1";
        $customName = "admin";

        if($isMyself == '1') {
            if (!empty($customName)) {
                if ($comment->comment_author == $customName) {
                    return $comment;
                }
            } elseif ($comment->comment_author == 1) {
                return  $comment;
            }
        }

        $title = "博客收到了新的评论";
        $message = $comment->comment_author . "在『 $post_name 』评论:\n" . $comment->comment_content;

        $postdata = array(
            'title' => $title,
            'body' => $message
        );

        !empty($bark_icon) ? $postdata["icon"] = $bark_icon : "";
        !empty($bark_group) ? $postdata["group"] = $bark_group : "";
        !empty($bark_archive) ? $postdata["isArchive"] = $bark_archive : "";
        !empty($bark_sound) ? $postdata["sound"] = $bark_sound : "";        
        !empty($bark_goto_url) ? $postdata["url"] = $bark_goto_url : "";

        $opts = array('http' =>
            array(
                'method'  => 'POST',
                'header'  => 'Content-type: application/x-www-form-urlencoded',
                'content' => http_build_query($postdata)
            ),
            "ssl" => array(
                "verify_peer" => false,
                "verify_peer_name" => false
            )
        );

        $context  = stream_context_create($opts);
        $result = file_get_contents($bark.$bark_key, false, $context);
        return  $comment;
}

add_action('comment_post', 'comment_bark_notify');
function comment_bark_notify($comment_id) 
{
    $comment = get_comment($comment_id);
    bark_push_msg($comment, get_the_title($comment->comment_post_ID));
}
分享到:
本文链接:https://blog.renzicu.com/2023/07/272.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
THE END
二维码
打赏
文章目录
关闭
目 录