阅读视图

发现新文章,点击刷新页面。

利用飞书每天定时推送网站当天以及本月访问量

前言

飞书真是个好东西,可以利用它给我们推送各种各样的消息。

今天教大家如何推送网站当天以及本月的访问量。

教程

1.首先网站统计需要用umami搭建,不懂的自己网站搜索umami,有教程

2.网站目录下新建一个php文件,并将如下代码添加到其中

<?php
// 设置飞书 Webhook URL
$feishuWebhookUrl = '飞书地址'; // 替换为你的飞书 Webhook URL

// 获取访问数据的函数
function getVisitData($umiToken, $umiId) {
    $umiTime = time() * 1000; // 当前时间(毫秒)
    $todayStart = strtotime('today') * 1000; // 今日开始时间(毫秒)
    $monthStart = strtotime('first day of this month') * 1000; // 本月开始时间(毫秒)

    // 获取今日访问量和访问人数
    $todayUrl = "https://你的域名/api/websites/{$umiId}/stats?startAt={$todayStart}&endAt={$umiTime}";
    $todayData = file_get_contents($todayUrl, false, stream_context_create([
        'http' => [
            'header' => "Authorization: Bearer {$umiToken}rn" .
                        "Content-Type: application/jsonrn"
        ]
    ]));
    $todayData = json_decode($todayData, true);

    // 获取本月访问量
    $monthUrl = "https://你的域名/api/websites/{$umiId}/stats?startAt={$monthStart}&endAt={$umiTime}";
    $monthData = file_get_contents($monthUrl, false, stream_context_create([
        'http' => [
            'header' => "Authorization: Bearer {$umiToken}rn" .
                        "Content-Type: application/jsonrn"
        ]
    ]));
    $monthData = json_decode($monthData, true);

    // 返回数据
    return [
        'todayUv' => $todayData['visitors']['value'] ?? 0,
        'todayPv' => $todayData['pageviews']['value'] ?? 0,
        'monthPv' => $monthData['pageviews']['value'] ?? 0
    ];
}

// 设置 UMI Token 和 ID
$umiToken = "你的token"; // 获取到的 token
$umiId = "你的websiteid"; // 获取到的 websiteId

// 获取访问数据
$visitData = getVisitData($umiToken, $umiId);

// 获取当前时间
$currentDateTime = date('Y年m月d日 H:i:s');

// 构建消息内容
$messageContent = sprintf(
    "现在是 %s,今天的访问人数为 %d,今天的访问量为 %d,本月的访问量为 %d。",
    $currentDateTime,
    $visitData['todayUv'],
    $visitData['todayPv'],
    $visitData['monthPv']
);

// 构建请求参数
$requestData = [
    "msg_type" => "text",
    "content" => [
        "text" => $messageContent
    ]
];

// 将请求参数转换为 JSON 格式
$jsonData = json_encode($requestData);

// 初始化 cURL
$ch = curl_init($feishuWebhookUrl);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Content-Length: ' . strlen($jsonData)
]);

// 执行请求
$response = curl_exec($ch);
curl_close($ch);

// 输出响应
echo $response;
?>

3.访问飞书官网

4.新建一个机器人,添加流程

5.选择触发器为webhook触发

6.参数填写:{"msg_type":"text","content":{"text":"request example"}}

7.选择操作为发送飞书消息

8.消息内容点击加号,然后选择webhook触发里的content.text

9.宝塔面板计划执行添加定时访问url。

截图

图片[1]-新锐博客

Docker 部署消息推送服务

前言

搭建专属于你的消息推送服务,支持多种消息推送方式,支持 Markdown,仅单可执行文件,开箱即用。

简介

  1. 多种消息推送方式:
    • 邮件消息,
    • 微信测试号,
    • 企业微信应用号,
    • 企业微信群机器人
    • 飞书群机器人,
    • 钉钉群机器人,
    • Bark App,
    • WebSocket 客户端(官方客户端接入文档),
    • Telegram 机器人,
    • Discord 群机器人,
  2. 多种用户登录注册方式:
  3. 支持 Markdown。
  4. 支持用户管理。
  5. Cloudflare Turnstile 用户校验。
  6. 支持在线发布公告,设置关于界面以及页脚。
  7. 支持在 Web 端管理发送的消息,支持自动刷新。

演示

官方部署站 https://msgpusher.com 现已上线,当前开放注册,欢迎使用。

教程

命令安装

docker run -d --restart always --name message-pusher -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/message-pusher:/data justsong/message-pusher

其中3000为访问端口。

更新镜像

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR

注意

如果需要使用 WebSocket 客户端推送功能,则 Nginx 的配置文件中 proxy_read_timeout  和 proxy_send_timeout  务必设置超过 1 分钟。

推荐设置:

proxy_read_timeout 300s; 
proxy_send_timeout 300s; 

设置反代

1.宝塔新建网站,PHP版本选择纯静态。

2.找到反向代理,添加反向代理,URL为ip+端口

3.反代设置完成,可以通过网站访问了。

 

❌