【问题标题】:Google Translation API WithAPIKey option errorGoogle Translation API WithAPIKey 选项错误
【发布时间】:2021-07-19 08:10:03
【问题描述】:

我正在使用 Golang 构建一个多语言 SAAS 网站构建器,该构建器按客户端运行。每个客户都可以拥有自己的网站,并可以将他们的网站翻译成所需的语言。

由于该功能是针对每个客户端的,所以我从客户端收集了一个 API 密钥,我用它来翻译他们的网站内容。

这是代码,

V2

package main

import (
    "context"
    "fmt"

    "cloud.google.com/go/translate"
    "google.golang.org/api/option"
)

func main() {
    translationStrings := []string{"hello"}
    ctx := context.Background()
    opts := option.WithAPIKey(APIKEY)
    c, err := translate.NewClient(ctx, opts)
    if err != nil {
        fmt.Println(err)
    }
    defer c.Close()
    resp, err := c.Translate(ctx, translationStrings, language.French,
        &translate.Options{
            Source: language.English,
            Format: translate.Text,
        })
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(resp)
}

V3


translate "cloud.google.com/go/translate/apiv3"
translatepb "google.golang.org/genproto/googleapis/cloud/translate/v3"

c, err := translate.NewTranslationClient(ctx, opts)
if err != nil {
    fmt.Println(err)
}
defer c.Close()
req := &translatepb.TranslateTextRequest{
    Contents:           translationStrings,
    TargetLanguageCode: "sr-Latn",
}
resp, err := c.TranslateText(ctx, req)

V2 的代码运行良好,但 V3 的相同代码无法运行。它给出了错误:

API keys are not supported for gRPC APIs. Remove the WithAPIKey option from your client-creating call.

如错误中所述,它要求我删除 WithAPIKey 选项。但是如果我删除它,那么我将如何为每个客户端使用 api 密钥。

我选择使用 V3 api 是因为它将作为一个整体进行翻译,所以这将是一个很大的请求。我在文档中读到 V3 api 可以批量工作。

所以我的问题是:

  1. 如何在 api V3 中使用每个客户端的 api 密钥结构?
  2. 是否可以为上述目的使用 api V2?

【问题讨论】:

    标签: go google-translation-api


    【解决方案1】:

    Cloud Translation API v3 目前不支持 API 密钥。建议您为 Cloud Translation API v3 请求创建服务帐号。有关创建服务帐户的信息,请参阅Creating and managing service accounts。您的服务帐号必须添加到为 Cloud Translation API v3 添加的 IAM 角色之一。

    【讨论】:

    • 感谢您的回答。您是否正确阅读了问题?要求是客户必须使用自己的凭证进行翻译。这可以使用 V3 来实现,还是我必须为此使用 V2?
    • 在这种情况下,您需要使用 V2。
    猜你喜欢
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 2013-02-21
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多