gpt4 book ai didi

go - 使用服务帐户从 Google REST API 获取数据

转载 作者:IT王子 更新时间:2023-10-29 02:35:39 31 4
gpt4 key购买 nike

我想从 API 获取信息(数据)并显示它。使用 API 从 Big Query 获取数据。

目前,我已经编写了可能假设显示来自 API 的信息的代码,但我不确定如何将服务帐户用作环境。

package main

import (
"fmt"
"io/ioutil"
"net/http"
"os"
)

func main() {

response, err := http.Get("https://www.googleapis.com/bigquery/v2/projects/PROJECT_ID/queries/JOB_ID")
if err != nil {
fmt.Printf("%s", err)
os.Exit(1)
} else {
defer response.Body.Close()
contents, err := ioutil.ReadAll(response.Body)
if err != nil {
fmt.Printf("%s", err)
os.Exit(1)
}
fmt.Printf("%s\n", string(contents))
}
}

预期的结果应该只是显示来自 API 的数据,然后我将需要创建一个无需身份验证即可使用参数(如 GET 方法)访问的 API

附言这是 API 的链接 - https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/getQueryResults

最佳答案

如果您查看文档,您会注意到它的统计信息 Jobs: getQueryResults它声明您正在调用的方法要求您通过以下范围之一进行身份验证。

enter image description here

您尝试访问的数据是私有(private)用户数据,您必须经过身份验证才能访问私有(private)用户数据。您似乎没有尝试以任何方式进行身份验证。

您创建的服务帐户凭据应该在您的代码中用于向谷歌发送授权请求

您可以在此处找到有关如何使用服务帐户进行身份验证的一些信息。 introduction to authentication

启用凭据

export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json"

代码

// Sample bigquery-quickstart creates a Google BigQuery dataset.
package main

import (
"fmt"
"log"

// Imports the Google Cloud BigQuery client package.
"cloud.google.com/go/bigquery"
"golang.org/x/net/context"
)

func main() {
ctx := context.Background()

// Sets your Google Cloud Platform project ID.
projectID := "YOUR_PROJECT_ID"

// Creates a client.
client, err := bigquery.NewClient(ctx, projectID)
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}

// Sets the name for the new dataset.
datasetName := "my_new_dataset"

// Creates the new BigQuery dataset.
if err := client.Dataset(datasetName).Create(ctx, &bigquery.DatasetMetadata{}); err != nil {
log.Fatalf("Failed to create dataset: %v", err)
}

fmt.Printf("Dataset created\n")
}

关于go - 使用服务帐户从 Google REST API 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54692139/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com