littlebot
Published on 2025-04-15 / 2 Visits
0

【源码】基于Golang的钉钉开发SDK

项目简介

这是一个用于与钉钉(DingTalk)API交互的Golang SDK,提供了与钉钉API交互所需的函数和方法,方便开发者使用钉钉API进行开发。

项目的主要特性和功能

  1. 支持多种免登方式,如ISV、企业、SSO、SNS(H5 Web App)免登以及个人小程序免登。
  2. 利用独占锁对access_token进行自动续期和过期管理。
  3. 支持注册钉钉事件回调,能对钉钉事件回调消息签名进行加解密。
  4. 支持调用钉钉全部的Open API和Top API,自动处理生成加密签名。
  5. 提供一系列测试用例,涵盖获取认证范围、企业access_token、企业票据、上传和下载文件等功能。

安装使用步骤

安装

在终端执行以下命令安装SDK: bash 安装完成后,可执行以下命令查看SDK信息: bash ~ ᐅ go-dingtalk

使用

  1. 配置企业ID、企业密钥等必要信息,示例代码如下: ```go package main

import ( "os" )

func main() { c := getCompanyDingTalkClient() c.RefreshCompanyAccessToken() }

func getCompanyDingTalkClient() *dingtalk.DingTalkClient { CorpID := os.Getenv("CorpId") CorpSecret := os.Getenv("CorpSecret") config := &dingtalk.DTConfig{ CorpID: CorpID, CorpSecret: CorpSecret, } c := dingtalk.NewDingTalkCompanyClient(config) return c } ``` 2. 使用SDK提供的函数和方法与钉钉API进行交互。

测试

若要运行测试用例,在终端执行以下命令: bash ~ ᐅ cd __test__ ~ ᐅ go test

文档查看

若要查看文档,可执行以下命令: bash ~ ᐅ npm i -g vuepress ~ ᐅ cd docs ~ ᐅ vuepress dev

ISV免登流程

  1. 调用RefreshSuiteAccessToken刷新suite_access_token
  2. 等待钉钉推送临时Code。
  3. 调用IsvGetPermanentCode
  4. 调用IsvActivateSuite给企业激活套件。
  5. 调用IsvGetCorpAccessToken获取企业的access_token

注意:只有isv的suite_access_token是单例,不同企业的corp_access_token不同。建议使用Redis等key - value存储来维护corp_access_token

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】