前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >飞书开放平台-发送文本&富文本消息

飞书开放平台-发送文本&富文本消息

作者头像
加多
发布2023-01-08 09:24:01
1.6K0
发布2023-01-08 09:24:01
举报
文章被收录于专栏:Java编程技术Java编程技术

前言

本文我们基于飞书开放平台提供了服务端SDK,来教下大家如何发送文本&富文本消息

代码示例

本文我们基于飞书开平提供的go-sdk进行展示,go-sdk的github地址为: https://github.com/larksuite/oapi-sdk-go

代码示例如下:

代码语言:javascript
复制
package main

import (
    "context"
    "fmt"
    lark "github.com/larksuite/oapi-sdk-go/v3"
    larkcore "github.com/larksuite/oapi-sdk-go/v3/core"
    larkim "github.com/larksuite/oapi-sdk-go/v3/service/im/v1"
    "os"
)

func sendTextMsg(client *lark.Client) {

    // Build the text message content
    //content := "{\"text\":\"hello,world\\n<at user_id=\\\"ou_c245b0a7dff2725cfa2fb104f8b48b9d\\\">加多</at>\"}"
    content := larkim.NewTextMsgBuilder().
        Text("hello,world").
        AtUser("ou_c245b0a7dff2725cfa2fb104f8b48b9d", "加多").
        Build()

    resp, err := client.Im.Message.Create(context.Background(), larkim.NewCreateMessageReqBuilder().
        ReceiveIdType(larkim.ReceiveIdTypeOpenId).
        Body(larkim.NewCreateMessageReqBodyBuilder().
            MsgType(larkim.MsgTypeText).
            ReceiveId("ou_c245b0a7dff2725cfa2fb104f8b48b9d").
            Content(content).
            Build()).
        Build())

    if err != nil {
        fmt.Println(err)
        return
    }

    if !resp.Success() {
        fmt.Println(resp.Code, resp.Msg, resp.RequestId())
        return
    }

    fmt.Println(resp.Data.MessageId)
    fmt.Println(larkcore.Prettify(resp))
    fmt.Println(resp.RequestId())
}
func sendPostMsgUseBuilder(client *lark.Client) {
    // 第一行
    // 文本 &超链接
    zhCnPostText := &larkim.MessagePostText{Text: "第一行:", UnEscape: false}
    enUsPostText := &larkim.MessagePostText{Text: "英文内容", UnEscape: false}

    zhCnPostA := &larkim.MessagePostA{Text: "超链接", Href: "http://www.baidu.com", UnEscape: false}
    enUsPostA := &larkim.MessagePostA{Text: "link", Href: "http://www.baidu.com", UnEscape: false}

    // At人
    zhCnPostAt := &larkim.MessagePostAt{UserId: "ou_c245b0a7dff2725cfa2fb104f8b48b9d", UserName: "加多"}
    enCnPostAt := &larkim.MessagePostAt{UserId: "ou_c245b0a7dff2725cfa2fb104f8b48b9d", UserName: "jiaduo"}

    // 图片
    zhCnPostImage := &larkim.MessagePostImage{ImageKey: "img_v2_a66c4f79-c7b5-4899-b5e3-622766c4f82g"}
    enCnPostImage := &larkim.MessagePostImage{ImageKey: "img_v2_a66c4f79-c7b5-4899-b5e3-622766c4f82g"}

    // 第二行
    // 文本 &超链接
    zhCnPostText21 := &larkim.MessagePostText{Text: "第二行:", UnEscape: false}
    enUsPostText21 := &larkim.MessagePostText{Text: "英文内容", UnEscape: false}

    // 图片
    zhCnPostImage2 := &larkim.MessagePostImage{ImageKey: "img_v2_a66c4f79-c7b5-4899-b5e3-622766c4f82g"}
    enCnPostImage2 := &larkim.MessagePostImage{ImageKey: "img_v2_a66c4f79-c7b5-4899-b5e3-622766c4f82g"}

    // 中文
    zhCn := larkim.NewMessagePostContent().
        ContentTitle("我是一个标题").
        AppendContent([]larkim.MessagePostElement{zhCnPostText, zhCnPostA, zhCnPostAt}).
        AppendContent([]larkim.MessagePostElement{zhCnPostImage}).
        AppendContent([]larkim.MessagePostElement{zhCnPostText21}).
        AppendContent([]larkim.MessagePostElement{zhCnPostImage2}).
        Build()

    // 英文
    enUs := larkim.NewMessagePostContent().
        ContentTitle("im a title").
        AppendContent([]larkim.MessagePostElement{enUsPostA, enUsPostText, enCnPostAt}).
        AppendContent([]larkim.MessagePostElement{enCnPostImage}).
        AppendContent([]larkim.MessagePostElement{enUsPostText21}).
        AppendContent([]larkim.MessagePostElement{enCnPostImage2}).
        Build()

    // 构建消息体
    postText, err := larkim.NewMessagePost().ZhCn(zhCn).EnUs(enUs).Build()
    if err != nil {
        fmt.Println(err)
        return
    }

    resp, err := client.Im.Message.Create(context.Background(), larkim.NewCreateMessageReqBuilder().
        ReceiveIdType(larkim.ReceiveIdTypeOpenId).
        Body(larkim.NewCreateMessageReqBodyBuilder().
            MsgType(larkim.MsgTypePost).
            ReceiveId("ou_c245b0a7dff2725cfa2fb104f8b48b9d").
            Content(postText).
            Build()).
        Build())

    if err != nil {
        fmt.Println(err)
        return
    }

    if resp.Success() {
        fmt.Println(larkcore.Prettify(resp))
        fmt.Println(*resp.Data.MessageId)
    } else {
        fmt.Println(resp.RequestId(), resp.Msg, resp.Code)
    }

}

func main() {
    // 创建 api client
    var appID, appSecret = os.Getenv("APP_ID"), os.Getenv("APP_SECRET")
    client := lark.NewClient(appID, appSecret)

    // 发送文本消息
    sendTextMsg(client)

    // 发送富文本消息
    sendPostMsgUseBuilder(client)
}

运行后,机器人就会给指定的接受者发送两个消息,消息内容如下:

image.png

配套讲解视频

https://www.bilibili.com/video/BV1aD4y1y78Y/?spm_id_from=333.999.0.0&vd_source=7ccc270970b6d95e716350d3f0ebff69

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 代码示例
  • 配套讲解视频
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档