飞书golang 发送机器人结构定义
在Golang中,可以定义一个结构体来表示飞书(Feishu)机器人的数据。以下是一个简单的示例,展示了如何定义用于发送消息到飞书机器人的结构体:
package main import ( "bytes" "encoding/json" "fmt" "net/http" ) // FeishuRobotPayload 表示飞书机器人的消息结构 type FeishuRobotPayload struct { MsgType string `json:"msg_type"` Content struct { Text string `json:"text"` } `json:"content"` } // SendFeishuRobotMessage 发送消息到飞书机器人 func SendFeishuRobotMessage(robotURL string, payload *FeishuRobotPayload) error { payloadBytes, err := json.Marshal(payload) if err != nil { return err } resp, err := http.Post(robotURL, "application/json", bytes.NewBuffer(payloadBytes)) if err != nil { return err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { return fmt.Errorf("failed to send message, status code: %d", resp.StatusCode) } return nil } func main() { // 示例:发送文本消息到飞书机器人 robotURL := "https://open.feishu.cn/open-apis/bot/v2/hook/your_robot_hook_url" message := &FeishuRobotPayload{ MsgType: "text", Content: struct { Text string `json:"text"` }{ Text: "这是一条来自Golang的消息", }, } err := SendFeishuRobotMessage(robotURL, message) if err != nil { fmt.Println("发送消息失败:", err) } else { fmt.Println("消息发送成功") } }在这个示例中,我们定义了一个FeishuRobotPayload
结构体来表示飞书机器人接受的消息格式。然后我们实现了一个SendFeishuRobotMessage
函数,它负责将消息序列化为JSON,并发送到指定的飞书机器人Webhook URL。在main
函数中,我们创建了一个消息并调用SendFeishuRobotMessage
函数来发送它。