0

我正在尝试实现一个 Golang 应用程序来访问 Google Analytics 数据。但所有示例都使用在一小时内死亡的令牌。在 api 访问中,我找到了一个“证书访问”,旨在用于从服务器访问,但我未能找到在 Golang 中实现的示例。有一些阅读,或者你可以启发我的路径吗?

我正在使用这个库。code.google.com/p/google-api-go-client/

在这里阅读一些帖子我发现了这个Service Applications and Google Analytics API V3: Server-to-server OAuth2 authentication?

但似乎它不会直接工作。真的没有办法做到这一点而没有破解它吗?

4

2 回答 2

1

你检查过OAuth2包吗?我已经将它用于用户授权的调用,并对其进行了一些修改以允许它处理多个授权源。

我没有使用纯服务器到服务器的通信对其进行测试,但是您应该能够破解传输代码以使其执行所需的操作...

于 2013-10-15T05:03:34.013 回答
0

这可能有点晚了,但我还没有找到一个很好的例子来让人们开始。

在开始之前,请确保您

安装 golang 1.5

安装谷歌云 SDK(cloud.google.com/sdk - 这将允许本地开发)

在您的 google appengine / 云控制台中创建一个服务帐户并下载 json(API 和 auth > Credentials)

一旦以上设置:

为您之前下载的安全凭证设置路径

导出 GOOGLE_APPLICATION_CREDENTIALS=~/DIRECTORY/CREDENTIALS.json

现在您可以使用 go 进行身份验证。

package main

import (
  "fmt"
  "golang.org/x/net/context"
  "golang.org/x/oauth2/google"
   analytics "google.golang.org/api/analytics/v3"
)

var (
  scope = analytics.AnalyticsReadonlyScope 
)

func main() {
  // Authentication is provided by the gcloud tool when running locally, and
  // by the associated service account when running on Compute Engine.
  client, err := google.DefaultClient(context.Background(), scope)
  if err != nil {
        fmt.Printf("Unable to get default client: %v", err)
  }

  service, err := analytics.New(client)
  if err != nil {
        fmt.Printf("Unable to create storage service: %v", err)
  }

  fmt.Println(service)
}
于 2015-10-16T19:20:03.007 回答