当前位置:   article > 正文

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

java飞书机器人发送富文本

前言

本文我们基于飞书开放平台提供的服务端SDK,展示下如何发送文本&富文本消息

代码示例

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

代码示例如下:

  1. package main
  2. import (
  3.     "context"
  4.     "fmt"
  5.     lark "github.com/larksuite/oapi-sdk-go/v3"
  6.     larkcore "github.com/larksuite/oapi-sdk-go/v3/core"
  7.     larkim "github.com/larksuite/oapi-sdk-go/v3/service/im/v1"
  8.     "os"
  9. )
  10. func sendTextMsg(client *lark.Client) {
  11.     // Build the text message content
  12.     //content := "{\"text\":\"hello,world\\n<at user_id=\\\"ou_c245b0a7dff2725cfa2fb104f8b48b9d\\\">加多</at>\"}"
  13.     content := larkim.NewTextMsgBuilder().
  14.         Text("hello,world").
  15.         AtUser("ou_c245b0a7dff2725cfa2fb104f8b48b9d""加多").
  16.         Build()
  17.     resp, err := client.Im.Message.Create(context.Background(), larkim.NewCreateMessageReqBuilder().
  18.         ReceiveIdType(larkim.ReceiveIdTypeOpenId).
  19.         Body(larkim.NewCreateMessageReqBodyBuilder().
  20.             MsgType(larkim.MsgTypeText).
  21.             ReceiveId("ou_c245b0a7dff2725cfa2fb104f8b48b9d").
  22.             Content(content).
  23.             Build()).
  24.         Build())
  25.     if err != nil {
  26.         fmt.Println(err)
  27.         return
  28.     }
  29.     if !resp.Success() {
  30.         fmt.Println(resp.Code, resp.Msg, resp.RequestId())
  31.         return
  32.     }
  33.     fmt.Println(resp.Data.MessageId)
  34.     fmt.Println(larkcore.Prettify(resp))
  35.     fmt.Println(resp.RequestId())
  36. }
  37. func sendPostMsgUseBuilder(client *lark.Client) {
  38.     // 第一行
  39.     // 文本 &超链接
  40.     zhCnPostText := &larkim.MessagePostText{Text: "第一行:", UnEscape: false}
  41.     enUsPostText := &larkim.MessagePostText{Text: "英文内容", UnEscape: false}
  42.     zhCnPostA := &larkim.MessagePostA{Text: "超链接", Href: "http://www.baidu.com", UnEscape: false}
  43.     enUsPostA := &larkim.MessagePostA{Text: "link", Href: "http://www.baidu.com", UnEscape: false}
  44.     // At人
  45.     zhCnPostAt := &larkim.MessagePostAt{UserId: "ou_c245b0a7dff2725cfa2fb104f8b48b9d", UserName: "加多"}
  46.     enCnPostAt := &larkim.MessagePostAt{UserId: "ou_c245b0a7dff2725cfa2fb104f8b48b9d", UserName: "jiaduo"}
  47.     // 图片
  48.     zhCnPostImage := &larkim.MessagePostImage{ImageKey: "img_v2_a66c4f79-c7b5-4899-b5e3-622766c4f82g"}
  49.     enCnPostImage := &larkim.MessagePostImage{ImageKey: "img_v2_a66c4f79-c7b5-4899-b5e3-622766c4f82g"}
  50.     // 第二行
  51.     // 文本 &超链接
  52.     zhCnPostText21 := &larkim.MessagePostText{Text: "第二行:", UnEscape: false}
  53.     enUsPostText21 := &larkim.MessagePostText{Text: "英文内容", UnEscape: false}
  54.     // 图片
  55.     zhCnPostImage2 := &larkim.MessagePostImage{ImageKey: "img_v2_a66c4f79-c7b5-4899-b5e3-622766c4f82g"}
  56.     enCnPostImage2 := &larkim.MessagePostImage{ImageKey: "img_v2_a66c4f79-c7b5-4899-b5e3-622766c4f82g"}
  57.     // 中文
  58.     zhCn := larkim.NewMessagePostContent().
  59.         ContentTitle("我是一个标题").
  60.         AppendContent([]larkim.MessagePostElement{zhCnPostText, zhCnPostA, zhCnPostAt}).
  61.         AppendContent([]larkim.MessagePostElement{zhCnPostImage}).
  62.         AppendContent([]larkim.MessagePostElement{zhCnPostText21}).
  63.         AppendContent([]larkim.MessagePostElement{zhCnPostImage2}).
  64.         Build()
  65.     // 英文
  66.     enUs := larkim.NewMessagePostContent().
  67.         ContentTitle("im a title").
  68.         AppendContent([]larkim.MessagePostElement{enUsPostA, enUsPostText, enCnPostAt}).
  69.         AppendContent([]larkim.MessagePostElement{enCnPostImage}).
  70.         AppendContent([]larkim.MessagePostElement{enUsPostText21}).
  71.         AppendContent([]larkim.MessagePostElement{enCnPostImage2}).
  72.         Build()
  73.     // 构建消息体
  74.     postText, err := larkim.NewMessagePost().ZhCn(zhCn).EnUs(enUs).Build()
  75.     if err != nil {
  76.         fmt.Println(err)
  77.         return
  78.     }
  79.     resp, err := client.Im.Message.Create(context.Background(), larkim.NewCreateMessageReqBuilder().
  80.         ReceiveIdType(larkim.ReceiveIdTypeOpenId).
  81.         Body(larkim.NewCreateMessageReqBodyBuilder().
  82.             MsgType(larkim.MsgTypePost).
  83.             ReceiveId("ou_c245b0a7dff2725cfa2fb104f8b48b9d").
  84.             Content(postText).
  85.             Build()).
  86.         Build())
  87.     if err != nil {
  88.         fmt.Println(err)
  89.         return
  90.     }
  91.     if resp.Success() {
  92.         fmt.Println(larkcore.Prettify(resp))
  93.         fmt.Println(*resp.Data.MessageId)
  94.     } else {
  95.         fmt.Println(resp.RequestId(), resp.Msg, resp.Code)
  96.     }
  97. }
  98. func main() {
  99.     // 创建 api client
  100.     var appID, appSecret = os.Getenv("APP_ID"), os.Getenv("APP_SECRET")
  101.     client := lark.NewClient(appID, appSecret)
  102.     // 发送文本消息
  103.     sendTextMsg(client)
  104.     // 发送富文本消息
  105.     sendPostMsgUseBuilder(client)
  106. }

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

9917538ca137d4871da0b1a2e332ac24.png
image.png

配套讲解视频

单击左下角阅读原文,可看对应视频讲解

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/498551
推荐阅读
相关标签
  

闽ICP备14008679号