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

前言

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

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

教程

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}\r\n" .
                        "Content-Type: application/json\r\n"
        ]
    ]));
    $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}\r\n" .
                        "Content-Type: application/json\r\n"
        ]
    ]));
    $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。

截图

THE END