0

我目前正在尝试使用谷歌开发者 SDK。在那里我试图利用谷歌翻译功能。使用通过谷歌开发者控制台获得的访问令牌发送请求时,翻译工作正常。但是使用这个 SDK 它不断抛出一个403 User Rate Limit Exceeded

这是有问题的代码:

googleService.defineAction$(function translateMessage(target, message, projectId) {
    const translateClient = Translate({
        projectId: projectId    
    })
    console.log(target, message)
    return translateClient.translate(message, target)
        .then(function handleTranslateResults(results) {
            console.log('result : ', result)
            return result
        }) 
        .catch(function handle(err) {
            console.log('err : ', err)
        })
})

我已启用计费。我是唯一一个发送请求的人,每次只有大约 10 个字符。这就是为什么我对此感到困惑,我不可能达到极限。

检查我的配额和请求日志可以确认这一点。

我还尝试在加载代码时在函数之外初始化翻译客户端,但这会产生相同的结果。

我确实知道以前有人问过这个问题,但是这些答案都没有为我的问题提供解决方案,我无法在网上找到解释。

4

1 回答 1

1

因此,在查看了 SDK 的节点模块之后,我发现了一个自述文件,它与 google 在 github 上推广的文件及其示例页面不同。问题在于传递给的对象Translate({})还必须包含有效的 api 密钥。没有它,它将向 api 管理器中使用的“在浏览器中尝试此功能”功能发出相同 url 的请求。在被要求注册付费帐户之前,此 URL 只能使用一次或两次。之后它只会返回 403“超出用户限制率”。

我已经对错误示例所在的 google github 进行了 PR。 https://github.com/GoogleCloudPlatform/nodejs-docs-samples/pull/324

于 2017-03-15T07:36:07.203 回答