如何直接将Podio AuthToken传给podio-go客户端

How to directly pass Podio AuthToken to podio-go client

我是 Rails 的 Ruby 开发人员,现在正尝试使用 Go 进行一些 podio.com API 调用。到目前为止一切都很顺利,但我遇到了一个小而愚蠢的问题,我在强大的 Whosebug 上找不到答案(可能是因为我不知道要搜索什么)。

一些背景信息:我们的 rails 应用程序已经在处理所有 podio oAuth 服务器流,我们拥有所有必要的客户端信息(auth_token、refresh_token、... ) 并且不需要再次请求该信息。

而不是做

 podio.AuthWithAuthCode(clientId, clientSecret, authCode, redirectUri)

我希望像这样直接创建一个客户端对象

// json data coming from rails
json_auth_token := "{\"access_token\":\"...\",\"refresh_token\":\"...\",\"token_type\":\"\",\"expires_in\":28800,\"transfer_token\":\"\"}"

// creating a AuthToken object
authToken := podio.AuthToken{}
json.Unmarshal([]byte(json_auth_token), &authToken)

// so far so good, but when doing
client := podio.NewClient(authToken)

我收到错误

cannot use authToken (type podio.AuthToken) as type *podio.AuthToken in argument to podio.NewClient

有人可以帮我解决这个问题吗?它不一定与跑道相关。更多相关内容

目前变量authToken的类型是podio.AuthToken,即不是指针,只是一个结构。函数 podio.NewClient 需要一个类型为 *podio.AuthToken 的参数(指向 podio.AuthToken 的指针),这就是您遇到编译器错误的原因。解决此问题的最简单方法是像这样简单地尊重 authToken

client := podio.NewClient(&authToken)

或者您可以将 authToken 的类型更改为 *podio.AuthToken:

authToken := &podio.AuthToken{}
json.Unmarshal([]byte(json_auth_token), authToken)
client := podio.NewClient(authToken)

稍微不相关(也许你为了简洁省略了这个),但你可能想检查从 json.Unmarshal:

返回的错误
err := json.Unmarshal([]byte(json_auth_token), authToken)
if err != nil {
  // handle error
}