dingtalk 一个让钉钉服务端开发更简单的golang工具库

本文介绍了一个名为dingtalk的Golang工具库,它为钉钉服务端开发提供便利,包括自动处理token过期、用户ID转换和白名单过滤等功能。详细内容涵盖仓库地址、安装步骤、客户端创建、reduce函数使用以及各种API调用,如消息通知、日程管理和OAuth2等。
摘要由CSDN通过智能技术生成

dingtalk

这是一个集成钉钉常用功能的简易版服务端开发工具库,适用于创建一次客户端,多次调用的场景。内置token过期时间维护;内置用户id到用户userid的计算函数,可以方便的在企业用户名与userid之间自动转换;同时在reduce函数中可以设置加入白名单过滤,避免在测试环境中发信息给非白名单用户。具体参数说明,请参考钉钉开发文档

仓库地址

https://github.com/kevin2027/easy-dingtalk

安装

  go get -u github.com/kevin2027/easy-dingtalk

引入代码

import (
    "github.com/kevin2027/easy-dingtalk/dingtalk"
    "github.com/kevin2027/easy-dingtalk/utils"
)

创建客户端

srv, _, err = dingtalk.NewDingtalk(utils.DingtalkOptions{
   
    AppKey:    config.AppKey,
    AppSecret: config.AppSecret,
    AgentId:   config.AgentId,
})

reduce函数

client.SetDingDiReduceFn(func(ctx context.Context, attr string, src ...string) (dest map[string]string) {
   
  dest = make(map[string]string)
  if attr == utils.AttDeptId {
   
   return
  }
  for _, s := range src {
   
   if user, ok := config.Users[s]; ok {
   
    switch attr {
   
    case utils.AttrUserid:
     dest[s] = user.Userid
    }
   }
  }

  return
 })

调用

消息通知

普通消息
var err error
 defer deferErr(&err)
 msg := &message.MessageRequest{
   
  Msgtype: "text",
  Text: &message.TextMessage{
   
   Content: "这是一段文本消息",
  },
 }
 receiver, err := client.Message().SendToConversation("user0", 123453556, msg)
 if err != nil {
   
  err = fmt.Errorf("%w", err)
  return
 }
 fmt.P
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值