前言

本文我们基于飞书开放平台提供的服务端SDK,展示下如何查询一个消息有哪些人已读了。

代码示例

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

代码示例如下:

package main
import ("context""errors""fmt""github.com/larksuite/oapi-sdk-go/v3""github.com/larksuite/oapi-sdk-go/v3/core""github.com/larksuite/oapi-sdk-go/v3/service/im/v1""os"
)// GET /open-apis/im/v1/messages/:message_id/read_usersfunc SendTextMsg2(client *lark.Client) (string, error) {content := larkim.NewTextMsgBuilder().Text("hello,world").Build()resp, err := client.Im.Message.Create(context.Background(), larkim.NewCreateMessageReqBuilder().ReceiveIdType(larkim.ReceiveIdTypeChatId).Body(larkim.NewCreateMessageReqBodyBuilder().MsgType(larkim.MsgTypeText).ReceiveId("oc_ccd2e318ba972a9d5d282e4da2a3d160").Content(content).Build()).Build())if err != nil {return "", err}if !resp.Success() {return "", errors.New(fmt.Sprintf("%d,%s,%s", resp.Code, resp.Msg, resp.RequestId()))}fmt.Println(resp.Data.MessageId)fmt.Println(larkcore.Prettify(resp))fmt.Println(resp.RequestId())return *resp.Data.MessageId, nil
}func ReadUsersMsg(client *lark.Client, msgID string) {// 创建请求对象req := larkim.NewReadUsersMessageReqBuilder().MessageId(msgID).UserIdType(larkim.UserIdTypeOpenId).PageSize(5).Build()// 循环查询for {// 发起请求resp, err := client.Im.Message.ReadUsers(context.Background(), req)// 处理错误if err != nil {fmt.Println(err)return}// 服务端错误处理if !resp.Success() {fmt.Println(resp.Code, resp.Msg, resp.RequestId())return}// 业务处理fmt.Println(larkcore.Prettify(resp))// 是否还有分页数据,没有则直接返回if *resp.Data.HasMore == false {return}// 构造下一次请求体req = larkim.NewReadUsersMessageReqBuilder().MessageId("om_d40652dbee7f23b01cba4348102dedd1").UserIdType(larkim.UserIdTypeOpenId).PageSize(5).PageToken(*resp.Data.PageToken). // 下一次查询Build()}
}func main() {// 创建 Clientvar appID, appSecret = os.Getenv("APP_ID"), os.Getenv("APP_SECRET")client := lark.NewClient(appID, appSecret)// 发送消息msgID, err := SendTextMsg2(client)if err != nil {fmt.Println(err)return}// 读取已读信息ReadUsersMsg(client, msgID)// 读取已读信息ReadUsersMsg(client, msgID)}

debug运行,然后再ReadUsersMsg处断点,然后再飞书上读消息后,继续运行结果如下:

image.png

配套讲解视频

配套视频讲解,可单击左下角 阅读原文 观看

飞书开放平台-查询已读消息示例相关推荐

  1. 飞书开放平台Go-Sdk使用指南

    飞书开放平台提供了Go-Sdk,旨在让开发者便捷的调用飞书开放API.处理订阅的消息事件.处理服务端推送的卡片行为. 安装 go get -u github.com/larksuite/oapi-sd ...

  2. 飞书开放平台-发送个人群名片消息示例

    前言 本文我们基于飞书开放平台提供的服务端SDK,来展示下如何个人和群名片消息 代码示例 本文我们基于飞书开平提供的go-sdk进行展示,go-sdk的github地址为: https://githu ...

  3. 飞书开放平台Java-Sdk

    为简化开发者接入飞书开放平台的操作步骤,我们提供了服务端 SDK,开发者可使用 SDK,快捷地开发功能. 安装 运行环境:JDK 1.8及以上 最新版本 maven 坐标 <dependency ...

  4. 飞书开放平台-全新消息卡片搭建工具

    前言 你还在为需要手撕 JSON 代码而烦恼吗?消息卡片搭建工具全新升级,为你带来更优雅的卡片创作体验:

  5. webSocket 实现消息推送、心跳、已读消息、加载更多等功能

    读万卷书不如行万里路,行万里路不如阅人无数,阅人无数不如名师指路.站着巨人身上,你可以看的更高.更远. 一.webSocket 初始化 initWebSocket 方法中,初始化 webSocket. ...

  6. 钉钉开放平台调取发送markdown消息无法换行问题解决

    一.错误原因 DD开放平台中发送markdown消息换行说是添加 \n 换行符.但是实际操作并无法实现换行 二.错误示范 三.正确修改 将\n修改为\n\n 微信搜索[源码兴趣圈],关注龙台,回复[资 ...

  7. 钉钉开放平台查询宜搭表单实例数据

    本例结合钉钉开放平台相关api实现获取宜搭表单数据.可在faas中做实现. 本例采用python编写,已在本地实现.对于免登获取数据,数据归档到本地能提供参考. faas具体实现请根据实际,参考使用. ...

  8. 用Mendix接收飞书消息,查询SAP并返回查询结果

    本例子描述的场景是让用户在飞书聊天群里通过输入凭证单据号,公司法人和财政年度这3个字段,呼叫飞书机器人,飞书机器人在后端查询SAP财务凭证明细信息,返回给飞书聊天群. 整体实现逻辑:在Mendix上创 ...

  9. 【分享】“飞书自建“在集简云平台集成应用的常见问题与解决方案

    一.通讯录动作常见问题 1.通讯录动作出现错误了怎么办? 如果遇到"通讯录动作"出现问题,请点击以下链接,参考[通讯录常见问题]相关文档 [通讯录常见问题]文档:开发文档 - 飞书 ...

最新文章

  1. android button imagebutton 区别,Android 开发入门篇
  2. TensorFlow 使用例子-LSTM实现序列标注
  3. yum安装最新的 LNMP
  4. smartMeter
  5. index函数在python中的用法_index函数怎么在python中使用
  6. 基于SSM+MySQL实现的酒店管理系统
  7. 分享8个强大的黑帽子自学网站(附:最常用的9种工具)
  8. 面试一脸懵:使用promise改造旧异步函数
  9. Validation框架的应用
  10. 【金猿案例展】某远程教育机构——以用户为中心 打造优势教学内容和智慧化学习产品...
  11. 搭建Genero BDL环境-安装篇
  12. 利用iframe实现局部打印(区域打印)
  13. 【转】电阻屏和电容屏之 二
  14. Zcash 对以太坊来说意味着什么?
  15. [ERP]IQC,IPQC,PQC,FQC,OQC是什么意思?是干什么的?
  16. 顶尖文案app_topys顶尖文案app下载
  17. VMware虚拟机银河麒麟服务器系统与物理windows主机网络设置相互ping通处理方案之桥接
  18. 遭到黑客攻击被敲诈勒索该不该交保护费?
  19. 比特同步和帧同步的区别
  20. Android 版 Facebook 登录

热门文章

  1. 处理2倍图片和3倍图片
  2. Find Any File for Mac,本地文件搜索工具
  3. 计算机英语boppps,BOPPPS教学法在英语教学中的应用
  4. Kinect虚拟试衣
  5. 基于Java语言的一次性动态口令算法TOTP
  6. html5 特效框架,带37种3D动画特效的跨浏览器CSS3动画框架
  7. 什么是数字双胞胎系统?
  8. java(11):tomcat简介与使用(上)
  9. android 画面水平翻转,Android 屏幕实现上下翻转
  10. MT4/MQL4入门到精通EA教程第四课-MQL语言常用函数(四)-K线取值常用函数