跳到主要内容

Go SDK 配置指南

信息

Go SDK 为服务端 SDK,主要用于在云引擎等受信任的服务器环境中调用管理接口、云函数等。 如果你需要在自己的服务器上使用 Go SDK,请参考此篇文档完成配置。

获取 SDK​

获取 SDK 有多种方式,较为推荐的方式是通过包依赖管理工具下载最新版本。

包依赖管理工具安装​

Go SDK 支持使用官方推荐的 Go Modules 进行安装和管理,如果你的项目没有使用过 Go Modules 的话需要先用 go mod init 来进行初始化。

你可以先在代码中引用 Go SDK:

import "github.com/leancloud/go-sdk/leancloud"

之后运行 go build 的时候就会自动下载安装 Go SDK 了。

注意:

  • 如果你希望创建一个新的云引擎项目的话,推荐基于我们的 示例项目 进行开发。
  • 如果依赖下载速度较慢,可以 配置镜像 或者通过代理(设置 http_proxy 环境变量)访问。

手动安装​

前往 Go SDK 下载页获取 SDK 并安装。

初始化​

应用凭证​

在 云服务控制台 > 设置 > 应用凭证 可以查看应用的基本信息:

  • App ID:在 SDK 初始化时用到。
  • App Key:客户端对服务端的调用凭证,在 SDK 初始化时用到。
  • Master Key:用于在自有服务器、云引擎等受信任环境调用管理接口,具备跳过一切权限验证的超级权限。所以一定注意保密,千万不要在客户端代码中使用该凭证。
  • 服务器地址:又称 API 域名或 Server URL,在客户端 SDK 初始化时用到。域名配置参考下一节域名。

如果是部署到云引擎的项目,或在本地使用 lean up 启动项目时会自动注入环境变量,只需从环境变量创建客户端即可:

client := leancloud.NewEnvClient()

在其他环境中,你也可以手动传入应用信息:

client := leancloud.NewClient(&leancloud.ClientOptions{
AppID: "your-app-id",
AppKey: "your-app-key",
MasterKey: "your-master-key",
ServerURL: "https://your-server-url",
})

域名​

请参考 域名绑定指南。

开启调试日志​

在应用开发阶段,你可以选择开启 SDK 的调试日志(debug log)来方便追踪问题。调试日志开启后,SDK 会把网络请求、错误消息等信息输出到 IDE 的日志窗口,或是浏览器 Console 或是云引擎日志(如果在云引擎下运行 SDK)。

在启动程序前设置环境变量 LEANCLOUD_DEBUG:

LEANCLOUD_DEBUG=true lean up

注意,在应用发布之前,请关闭调试日志,以免暴露敏感数据。

验证​

首先,确认本地网络环境是可以访问云端服务器的,可以执行以下命令:

curl "https://{{host}}/1.1/date"

{{host}} 为绑定的 API 自定义域名。

如果当前网络正常会返回当前时间:

{"__type":"Date","iso":"2020-10-12T06:46:56.000Z"}

然后在项目中编写如下测试代码:

type TestObject struct {
leancloud.Object
Words string `json:"words"`
}

client := leancloud.NewENVClient()

testObject := TestObject{
Words: "Hello world!",
}

ref, err := client.Class("TestObject").Create(&testObject)

if err != nil {
panic(err)
}

保存后运行程序。

然后打开 云服务控制台 > 数据存储 > 结构化数据 > TestObject,如果看到数据表中出现一行「words」列的值为「Hello world!」的数据,说明 SDK 已经正确地执行了上述代码,配置完毕。

如果控制台没有发现对应的数据,请参考 问题排查。

问题排查​

SDK 安装指南基于当前最新版本的 SDK 编写,所以排查问题前,请先检查下安装的 SDK 是不是最新版本。

401 Unauthorized​

如果 SDK 抛出 401 异常或者查看本地网络访问日志存在:

{
"code": 401,
"error": "Unauthorized."
}

则可认定为 App ID 或者 App Key 输入有误,或者是不匹配,很多开发者同时注册了多个应用,导致拷贝粘贴的时候,用 A 应用的 App ID 匹配 B 应用的 App Key,这样就会出现服务端鉴权失败的错误。

客户端无法访问网络​

客户端尤其是手机端,应用在访问网络的时候需要申请一定的权限。