Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >飞书开放平台-发送文本&富文本消息

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

作者头像
加多
发布于 2023-01-08 01:24:01
发布于 2023-01-08 01:24:01
1.9K00
代码可运行
举报
文章被收录于专栏:Java编程技术Java编程技术
运行总次数:0
代码可运行

前言

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

代码示例

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

代码示例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
飞书开放平台-发送个人&群名片消息示例
本文我们基于飞书开平提供的go-sdk进行展示,go-sdk的github地址为: https://github.com/larksuite/oapi-sdk-go
加多
2023/01/08
1K0
飞书开放平台-发送个人&群名片消息示例
飞书开放平台-批量发送消息示例
本文我们基于飞书开平提供的go-sdk进行展示,go-sdk的github地址为: https://github.com/larksuite/oapi-sdk-go
加多
2023/03/19
1.3K0
飞书开放平台-回复消息示例
本文我们基于飞书开平提供的go-sdk进行展示,go-sdk的github地址为: https://github.com/larksuite/oapi-sdk-go
加多
2023/01/12
1.4K0
飞书开放平台-回复消息示例
飞书开放平台-全新消息卡片搭建工具
前言 你还在为需要手撕 JSON 代码而烦恼吗?消息卡片搭建工具全新升级,为你带来更优雅的卡片创作体验: 🌟 卡片编辑:纯可视化操作编辑消息卡片,再也不用碰代码 🌟 我的卡片:一键保存卡片,轻松构建你的专属卡片模板库 🌟 模板消息:无需烦恼冗长的请求体,一个卡片 ID 就能发送 可视化编辑工具 image.png 如上图卡片上每个元素,都提供了可视化的边界功能。 卡片格式与数据分离 image.png 如上每个卡片都有一个ID,我们称之为卡片模板的ID,另外卡片上每个元素都可以绑定一个变量,通
加多
2023/01/07
2.2K1
飞书开放平台-全新消息卡片搭建工具
飞书开放平台-发送卡片消息
本文我们基于飞书开平提供的go-sdk进行展示,go-sdk的github地址为: https://github.com/larksuite/oapi-sdk-go
加多
2023/01/10
2.1K0
飞书开放平台-发送卡片消息
go调用第三方API通用做法
在最近本人需要调用一些第三方服务,可是有些第三方服务并没有实现Go的官方SDK调用方法,本文将以一个实战案例教会你如何调用99%的第三方api
陈杪秋
2024/07/13
2860
最佳实践 | 用腾讯云智能语音打造智能对话机器人
在AI技术的推动下,智能对话机器人逐渐成为我们工作、生活中的重要效率工具,乃至是伙伴,特别是为企业带来最原始最直观的“降本增效”落地实现。
腾讯云AI
2023/04/06
5.8K0
最佳实践 | 用腾讯云智能语音打造智能对话机器人
最近爆火的MCP究竟有多大魅力?MCP开发初体验|得物技术
MCP 全称 Model Context Protocol,是由 Anthropic 公司在 2024 年 11 月推出一个开放协议,主要用于标准化应用程序向大语言模型提供上下文的方式。可以将 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 为设备连接各种外设和配件提供了标准化方式一样,MCP 为 AI 模型连接不同的数据源和工具提供了标准化方式。
得物技术
2025/05/08
4420
最近爆火的MCP究竟有多大魅力?MCP开发初体验|得物技术
聊聊Spring AI Alibaba的FeiShuDocumentReader
本文主要研究一下Spring AI Alibaba的FeiShuDocumentReader
code4it
2025/04/20
830
聊聊Spring AI Alibaba的FeiShuDocumentReader
Go操作腾讯云COS对象存储的简单使用案例
Golang:用于下载和安装 Go 编译运行环境,请前往 Golang 官网进行下载
iginkgo18
2020/09/27
3.5K0
Go操作腾讯云COS对象存储的简单使用案例
Go WebSocket + Redis 实现轻量级的订阅和实时消息推送
上一篇介绍了Golang中封装WebSocket功能,让WebSocket更简单好用和稳定。
杨永贞
2021/01/26
4.2K0
Go WebSocket + Redis 实现轻量级的订阅和实时消息推送
腾讯云 cos Go SDK使用学习
参考资料 官方文档 官方示例 基本概念 Bucket(存储桶) 命名上,由存储桶名称(BucketName)和APPID两部分组成,中间以"-“相连,例如examplebucket-1250000000 存储桶具有着地域(region),对象存储允许用户在不同的地域上创建存储桶。 Object(对象) 存储桶上存储的内容称为对象,对象是对象存储(Cloud Object Storage, cos)的基本单元,包括对象键、对象值和对象元数据 对象键是对象在存储桶中的唯一标识,可以通俗理解为文件路径。 对象值
千灵域
2022/06/17
18.4K1
使用零一万物 200K 模型和 Dify 快速搭建模型应用
本篇文章,我们聊聊如何使用 LLM IDE (Dify) 快速搭建一个模型应用,以及使用超长上下文的 200K 模型,完成懒人式的电子书翻译。
soulteary
2024/03/18
2.2K0
使用零一万物 200K 模型和 Dify 快速搭建模型应用
Bytom信息上链教程
Gitee地址:https://gitee.com/BytomBlockchain/bytom
比原链Bytom
2018/11/13
7600
Bytom信息上链教程
Windows下安装etcd集群及zRPC的简单使用
etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。
杨永贞
2021/03/04
3.3K0
如何优雅的设计一个SDK
相信很多开发同学一定都听说过SDK,SDK全称Software Development Kit,即软件开发工具包。它是由硬件平台、操作系统或编程语言的制造商提供的一套工具,协助软件开发人员面向特定的平台、系统或编程语言创建应用。SDK经常被用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。
闫同学
2023/11/18
1.8K1
Go和HTTPS -2
F为签名函数。CA自己的私钥是唯一标识CA签名的,因此CA用于生成数字证书的签名函数一定要以自己的私钥作为一个输入参数。在RSA加密 系统中,发送端的解密函数就是一个以私钥作 为参数的函数,因此常常被用作签名函数使用。签名算法是与证书一并发送给接收 端的,比如apple的一个服务的证书中关于签名算法的描述是“带 RSA 加密的 SHA-256 ( 1.2.840.113549.1.1.11 )”。因此CA用私钥解密函数作为F,对C的摘要进行运算得到了客户数字证书的签名,好比大学毕业证上的校长签名,所有毕业证
李海彬
2018/03/23
1.3K0
03 . Go开发一个日志平台之Elasticsearch使用及kafka消费消息发送到Elasticsearch
https://www.cnblogs.com/you-men/p/13391265.html
iginkgo18
2020/09/27
1.2K0
03 . Go开发一个日志平台之Elasticsearch使用及kafka消费消息发送到Elasticsearch
如何开发ChatOps
现在各种Ops,比如DevOps,AIOps,ChatOps,NoOps等等,反正其背后的意义就是各种卷运维,让运维无路可走。
没有故事的陈师傅
2022/12/06
5900
如何开发ChatOps
银商TMS平台秘钥自动下载并形成文件工具
package main import ( "flag" "fmt" "github.com/larspensjo/config" //"hex" "bytes" //"github.com/djimenez/iconv-go" "encoding/base64" "encoding/csv" "encoding/hex" "encoding/json" "io" "log" "os" "strconv" "testgo/desutil" "testgo/httputil"
杨永贞
2020/08/04
5500
相关推荐
飞书开放平台-发送个人&群名片消息示例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档