Go写一个飞书机器人定时发送消息的项目实践

 更新时间:2025年06月19日 09:24:11   作者:柯南二号  
本文主要介绍了Go写一个飞书机器人定时发送消息的项目实践,需配置Webhook地址并确保机器人在群聊中,代码每分钟触发一次,发送当前Unix时间戳消息,控制台记录调用日志与HTTP状态码

下面是一个每分钟调用飞书机器人 Webhook 地址发送消息的完整 Go 示例。

✅ 一、准备工作

你需要一个飞书机器人的 Webhook 地址,形如:

https://open.feishu.cn/open-apis/bot/v2/hook/xxxx-xxxx-xxxx-xxxx

确保的机器人在群聊中,并已开启“加签验证”或“自定义关键词”等配置(视你配置而定)。

✅ 二、Go 示例代码(每分钟发一次消息)

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"time"

	"github.com/robfig/cron/v3"
)

// 替换为你的机器人 Webhook 地址
const webhookURL = "https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxx"

func main() {
	c := cron.New(cron.WithSeconds()) // 开启秒级支持

	_, err := c.AddFunc("0 * * * * *", func() {
		fmt.Println("每分钟触发任务,当前时间戳:", time.Now().Unix())
		formattedTime := time.Now().Format("2025/01/02 15:04:05")
		sendLarkBotMessage("无论在干什么,请记得及时喝水\n当前时间:" + formattedTime)
	})

	if err != nil {
		fmt.Println("添加定时任务失败:", err)
		return
	}

	c.Start()
	fmt.Println("飞书定时消息机器人启动成功...")

	select {} // 阻塞主线程
}

// 发送消息到飞书机器人
func sendLarkBotMessage(content string) {
	message := map[string]interface{}{
		"msg_type": "text",
		"content": map[string]string{
			"text": content,
		},
	}

	jsonData, err := json.Marshal(message)
	if err != nil {
		fmt.Println("消息序列化失败:", err)
		return
	}

	resp, err := http.Post(webhookURL, "application/json", bytes.NewBuffer(jsonData))
	if err != nil {
		fmt.Println("发送请求失败:", err)
		return
	}
	defer func(Body io.ReadCloser) {
		err := Body.Close()
		if err != nil {

		}
	}(resp.Body)

	fmt.Println("飞书响应状态码:", resp.StatusCode)
}

✅ 三、效果说明

  • 每分钟的第 0 秒自动调用飞书 webhook。
  • 消息内容包含当前 Unix 时间戳。
  • 控制台会打印每次调用的日志与 HTTP 状态码。

参考:在群组中使用机器人 

到此这篇关于Go写一个飞书机器人定时发送消息的项目实践的文章就介绍到这了,更多相关Go 飞书机器人定时发送内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Golang生成压缩文件的详细教程

    使用Golang生成压缩文件的详细教程

    与其他语言一样,内置标准库默认支持文件压缩功能,本文介绍Golang如何创建压缩文件,增加一个或多个文件生成压缩文件,也可以在压缩文件中创建文件夹,用于对文件进行分类管理,Golang标准库 archive/zip提供了创建和读取压缩文件功能,需要的朋友可以参考下
    2024-01-01
  • 一文带你揭秘Go中new()和make()函数的区别和用途

    一文带你揭秘Go中new()和make()函数的区别和用途

    Go(或 Golang)是一种现代、静态类型、编译型的编程语言,专为构建可扩展、并发和高效的软件而设计,它提供了各种内置的函数和特性,帮助开发人员编写简洁高效的代码,在本博客文章中,我们将探讨 new() 和 make() 函数之间的区别,了解何时以及如何有效地使用它们
    2023-10-10
  • golang中map增删改查的示例代码

    golang中map增删改查的示例代码

    在Go语言中,map是一种内置的数据结构,用于存储键值对,本文主要介绍了golang中map增删改查的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • 使用Go语言提高图片分辨率的方法与实践

    使用Go语言提高图片分辨率的方法与实践

    在图像处理和计算机视觉领域,提高图片分辨率是一个常见的问题,随着高分辨率显示设备的普及,如4K、8K电视以及高像素手机摄像头的应用,用户对高质量图片的需求也越来越高,本文将介绍使用Golang语言提高图片分辨率的方法与实践,需要的朋友可以参考下
    2023-12-12
  • GO利用channel协调协程的实现

    GO利用channel协调协程的实现

    本文主要介绍了GO利用channel协调协程的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 解决Golang并发工具Singleflight的问题

    解决Golang并发工具Singleflight的问题

    前段时间在一个项目里使用到了分布式锁进行共享资源的访问限制,后来了解到Golang里还能够使用singleflight对共享资源的访问做限制,于是利用空余时间了解,将知识沉淀下来,并做分享
    2022-05-05
  • 如何在Golang中运行JavaScript

    如何在Golang中运行JavaScript

    最近写一个程序,接口返回的数据是js格式的,需要通过golang来解析js,所以下面这篇文章主要给大家介绍了关于如何在Golang中运行JavaScript的相关资料,需要的朋友可以参考下
    2022-01-01
  • 关于Go 空结构体的 3 种使用场景

    关于Go 空结构体的 3 种使用场景

    在今天这篇文章要给大家介绍得是Go 语言中几种常见类型的宽度,并且基于开头的问题 ”空结构体“ 进行了剖析,需要的朋友可以参考一下,希望对你有所帮助
    2021-10-10
  • Go语言实现选择法排序实例

    Go语言实现选择法排序实例

    这篇文章主要介绍了Go语言实现选择法排序的方法,实例分析了选择法排序的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • Go语言中int、float、string类型之间相互的转换

    Go语言中int、float、string类型之间相互的转换

    golang是强类型语言,在应用过程中类型转换基本都会用到,下面这篇文章主要给大家介绍了关于Go语言中int、float、string类型相互之间的转换,需要的朋友可以参考下
    2022-01-01

最新评论