我目前正在尝试使用google开发人员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个字符。 这就是为什么我对此感到困惑,没有可能的方式我可以达到极限。
检查我的配额和请求日志确认了这一点。
我还尝试在加载代码时在函数外部初始化translate客户端,但这会产生相同的结果。
我知道之前已经问过这个问题,但这些答案都没有解决我的问题,也无法在网上找到解释。
答案 0 :(得分:1)
因此,在浏览了SDK的节点模块之后,我发现了一个与github上的google升级版及其示例页面不同的自述文件。
问题在于传递给Translate({})
的对象还必须包含vaild api密钥。
没有它,它会向同一个网址发出请求"在浏览器中尝试此功能" api管理器中的功能使用。此网址只能在被要求注册付费帐户之前使用一次或两次。之后,它将仅返回403"超出用户限制率"。
我已经向谷歌github做了一个PR,错误的例子就在那里。 https://github.com/GoogleCloudPlatform/nodejs-docs-samples/pull/324