每日403次Google翻译API配额

时间:2017-12-26 01:04:04

标签: google-cloud-platform google-translate

我关注instructions以使用Google Translate API。我有:

  1. 创建了一个项目
  2. 启用了结算功能并在结算帐户中获得了300美元
  3. 启用了转换API并确保配额高
  4. 生成了具有管理员角色的服务帐户并下载了JSON
  5. 将以下行添加到我的.zshrc:

    export GOOGLE_APPLICATION_CREDENTIALS=/pathto/Holodeck-421412.json
    
  6. 来源:

    source ~/.zshrc
    
  7. 然而我的nodeJS代码和我的curl都返回:

     code: 403,
      errors:
       [ { message: 'Daily Limit Exceeded',
           domain: 'usageLimits',
           reason: 'dailyLimitExceeded' } ],
      response: undefined,
      message: 'Daily Limit Exceeded' }
    

    我的卷毛:

    curl --header "Content-Type: application/json" --header "Authorization: Bearer `gcloud auth print-access-token`" --show-error -s "https://translation.googleapis.com/language/translate/v2" -d @translate-request.json
    

    和translate-request.json:

    {
      "q": "The quick brown fox jumped over the lazy dog.",
      "source": "en",
      "target": "es",
      "format": "text"
    }
    

    我的NodeJS代码:

    // Imports the Google Cloud client library
    const language = require('@google-cloud/language');
    const Translate = require('@google-cloud/translate');
    
    // Instantiates a client
    const client = new language.LanguageServiceClient();
    
    // Your Google Cloud Platform project ID
    const projectId = 'myproject ID';
    
    // Instantiates a client
    const translation = new Translate({
        projectId: projectId
    });
    
    
    // The text to analyze
    let text1 = 'Hello, world!';
    
    const translate = (text) => {
        const target = 'en';
    
        translation
            .translate(text, target)
            .then(results => {
                const translation = results[0];
    
                console.log(`Text: ${text}`);
                console.log(`Translation: ${translation}`);
            })
            .catch(err => {
                console.error('ERROR:', err);
            });
    }
    
    
    const analyze = (text) => {
    
        const document = {
            content: "good very good amazingly good",
            type: 'PLAIN_TEXT',
        };
    
    // Detects the sentiment of the text
        client
            .analyzeSentiment({document: document})
            .then(results => {
                const sentiment = results[0].documentSentiment;
                console.log(`Sentiment score: ${sentiment.score}`);
                console.log(`Sentiment magnitude: ${sentiment.magnitude}`);
            })
            .catch(err => {
                console.error('ERROR:', err);
            });
    }
    
    translate(text1);
    analyze(text1);
    

    令我感到困惑的是,自然语言API正在运行,因此服务帐户似乎正常运行。对此有何看法?我试图通过这个意想不到的障碍3个小时,我做了任何牦牛剃须,我可以想到包括打开新的项目/服务帐户/ API密钥和谷歌团体论坛(它的设计只是让我欣赏StackOverflow更多... :))

    ---- ---- UPDATE

    当我将每日字符的配额从1,000,000更改为另一个值时,API似乎开始工作15秒左右(2-3个请求),然后返回到403错误。然后,如果我再次更改配额,我会得到另一轮2-3次请求。就好像请求本身正在改变配额,或者在15-20秒后撤消更改。

    quota

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我在Google问题跟踪器中发现了这个错误:https://issuetracker.google.com/issues/70990743

答案 1 :(得分:1)

此问题现在应该已修复,请再试一次,看看您是否仍然看到此问题,并在必要时重新打开问题#70990743

答案 2 :(得分:1)

您可以使用配额解决此问题。您应该增加“每天的字符数”和“每秒的字符数”。