Por que não aparece o ícone da Terra após configurar a Google Translator API?

Por que não há ícone da Terra depois que configurei a API do Google Translator?

root@talk:/data/discourse# ./launcher enter app
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
root@talk-app:/var/www/discourse# rails c
[1] pry(main)> DiscourseTranslator::Google.detect(Post.last)
DiscourseTranslator::TranslatorError: {"error"=>{"code"=>403, "message"=>"Requests from referer <empty> are blocked.", "errors"=>[{"message"=>"Requests from referer <empty> are blocked.", "domain"=>"global", "reason"=>"forbidden"}], "status"=>"PERMISSION_DENIED", "details"=>[{"@type"=>"type.googleapis.com/google.rpc.ErrorInfo", "reason"=>"API_KEY_HTTP_REFERRER_BLOCKED", "domain"=>"googleapis.com", "metadata"=>{"service"=>"translate.googleapis.com", "consumer"=>"projects/390801787023"}}]}}
from /var/www/discourse/plugins/discourse-translator/services/discourse_translator/google.rb:134:in `result'



Alguém pode me ajudar?

Parece que você não forneceu uma chave válida para acessar o tradutor. Verifique se você forneceu o pagamento e copie ou gere a chave novamente.

2 curtidas

ok, meu método de solicitação está correto?

 DiscourseTranslator::Google.detect(Post.last)

Eu forneci a chave de API correta, mas ainda recebo o erro:

[8] pry(main)> DiscourseTranslator::Google.detect(Post.last)
DiscourseTranslator::TranslatorError: {"error"=>{"code"=>403, "message"=>"Requests from referer <empty> are blocked.", "errors"=>[{"message"=>"Requests from referer <empty> are blocked.", "domain"=>"global", "reason"=>"forbidden"}], "status"=>"PERMISSION_DENIED", "details"=>[{"@type"=>"type.googleapis.com/google.rpc.ErrorInfo", "reason"=>"API_KEY_HTTP_REFERRER_BLOCKED", "domain"=>"googleapis.com", "metadata"=>{"consumer"=>"projects/390801787023", "service"=>"translate.googleapis.com"}}]}}
from /var/www/discourse/plugins/discourse-translator/services/discourse_translator/google.rb:134:in `result'

Eu preenchi a chave de API do Google Translator, mas não está funcionando corretamente, por favor, ajude a resolver!


root@talk:/data/discourse# ./launcher enter app
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
root@talk-app:/var/www/discourse# rails c
[1] pry(main)> DiscourseTranslator::Google.detect(Post.last)
DiscourseTranslator::TranslatorError: {"error"=>{"code"=>403, "message"=>"Requests from referer <empty> are blocked.", "errors"=>[{"message"=>"Requests from referer <empty> are blocked.", "domain"=>"global", "reason"=>"forbidden"}], "status"=>"PERMISSION_DENIED", "details"=>[{"@type"=>"type.googleapis.com/google.rpc.ErrorInfo", "reason"=>"API_KEY_HTTP_REFERRER_BLOCKED", "domain"=>"googleapis.com", "metadata"=>{"service"=>"translate.googleapis.com", "consumer"=>"projects/390801787023"}}]}}
from /var/www/discourse/plugins/discourse-translator/services/discourse_translator/google.rb:134:in `result'

meu método de teste de solicitação está correto?

Você definiu restrições de site, e a API espera ver um cabeçalho Referer na solicitação da API, o que parece explicitamente necessário aqui:

https://github.com/discourse/discourse-translator/blob/main/services/discourse_translator/google.rb#L119C9-L124

Para corrigir, você provavelmente precisaria do seguinte:

headers: {
    "Content-Type" => "application/x-www-form-urlencoded",
    "Referer" => Discourse.base_url
  }

Em outras palavras, o problema não é causado pelo seu lado.

O que você pode fazer é:

  • Tentar restrição por IP
  • Desativar a restrição até que seja corrigida no plugin

Espero que ajude!

1 curtida

Muito obrigado pela sua ajuda, com o acima pude passar no teste com sucesso. Mas descobri que ainda tenho o ícone de tradução da Terra.

root@talk-app:/var/www/discourse/plugins/discourse-translator/services/discourse_translator# rails c
[1] pry(main)> DiscourseTranslator::Google.detect(Post.last)
=> "en"
[2] pry(main)>