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

本文档详细介绍了如何使用飞书开放平台的Go-Sdk,包括安装、创建API Client、配置、API调用、消息事件回调及卡片行为处理。提供了与Gin框架的集成示例,帮助开发者便捷地调用飞书API并处理各种回调事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

飞书开放平台提供了Go-Sdk,旨在让开发者便捷的调用飞书开放API、处理订阅的消息事件、处理服务端推送的卡片行为。

安装

go get -u github.com/larksuite/oapi-sdk-go/v3@v3.0.3

API Client

开发者在调用 API 前,需要先创建一个 API Client,然后才可以基于 API Client 发起 API 调用。

创建API Client

  • 对于自建应用,可使用下面代码来创建一个 API Client

var client = lark.NewClient("appID", "appSecret") // 默认配置为自建应用
  • 对于商店应用,需在创建 API Client 时,使用 lark.WithMarketplaceApp 方法指定 AppType 为商店应用

var client = lark.NewClient("appID", "appSecret",lark.WithMarketplaceApp()) // 设置App为商店应用

配置API Client

创建 API Client 时,可对 API Client 进行一定的配置,比如我们可以在创建 API Client 时设置日志级别、设置 http 请求超时时间等等:

var client = lark.NewClient("appID", "appSecret",
    lark.WithLogLevel(larkcore.LogLevelDebug),
    lark.WithReqTimeout(3*time.Second),
    lark.WithEnableTokenCache(true),
    lark.WithHelpdeskCredential("id", "token"),
    lark.WithHttpClient(http.DefaultClient))

每个配置选项的具体含义,如下表格:

63de2c97c0be1a83f53732570fcb9b21.png

55ef2fc914a6fcfbe18de0d25d712a55.png

API调用

创建完毕 API Client,我们可以使用 Client.业务域.资源.方法名称 来定位具体的 API 方法,然后对具体的 API 发起调用。

95834ea4303417f5e7ff817c583f1467.png

飞书开放平台开放的所有 API 列表,可点击这里查看

基本用法

如下示例我们通过 client 调用文档业务的 Create 方法,创建一个文档:

import (
    "context"
    "fmt"
    "net/http"
    "os"

    "github.com/larksuite/oapi-sdk-go/v3"
    "github.com/larksuite/oapi-sdk-go/v3/core"
    "github.com/larksuite/oapi-sdk-go/v3/service/docx/v1"
)


func main() {
    // 创建 client
    client := lark.NewClient("appID", "appSecret")

    // 发起请求
    resp, err := client.Docx.Document.Create(context.Background(), larkdocx.NewCreateDocumentReqBuilder().
        Body(larkdocx.NewCreateDocumentReqBodyBuilder().
            FolderToken("token").
            Title("title").
            Build()).
        Build())

    //处理错误
    if err != nil {
           // 处理err
           return
    }

    // 服务端错误处理
    if !resp.Success() {
           fmt.Println(resp.Code, resp.Msg, resp.RequestId())
       return 
    }

    // 业务数据处理
    fmt.Println(larkcore.Prettify(resp.Data))
}

更多 API 调用示例:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/api/im.go

设置请求选项

开发者在每次发起 API 调用时,可以设置请求级别的一些参数,比如传递 UserAccessToken ,自定义 Headers 等:

import (
    "context"
    "fmt"
    "net/http"
    "os"

    "github.com/larksuite/oapi-sdk-go/v3"
    "github.com/larksuite/oapi-sdk-go/v3/core"
    "github.com/larksuite/oapi-sdk-go/v3/service/docx/v1"
)

func main() {
    // 创建client
    client := lark.NewClient("appID", "appSecret")

    // 自定义请求headers
    header := make(http.Header)
    header.Add("k1", "v1")
    header.Add("k2", "v2")

    // 发起请求
    resp, err := client.Docx.Document.Create(context.Background(), larkdocx.NewCreateDocumentReqBuilder().
        Body(larkdocx.NewCreateDocumentReqBodyBuilder().
            FolderToken("token").
            Title("t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值