¿Por qué no aparece el icono de la Tierra después de configurar la Google Translator API?

¿Por qué no aparece el icono de la Tierra después de configurar la API de Google Translator?

root@talk:/data/discourse# ./launcher enter app
Se detectó la arquitectura x86_64.
ADVERTENCIA: el archivo containers/app.yml es legible por todos. Puede proteger este archivo ejecutando: 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'



¿Alguien puede apoyarme?

Parece que no has proporcionado una clave válida para acceder al traductor. Te recomendaría comprobar que has proporcionado el pago y volver a copiar o regenerar la clave.

2 Me gusta

De acuerdo, ¿es correcto mi método de solicitud de prueba?

 DiscourseTranslator::Google.detect(Post.last)

He proporcionado la clave API correcta, pero sigo recibiendo el error:

[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'

Ingresé la clave API de Google Translator, pero no funciona correctamente. ¡Por favor, ayúdame a resolverlo!


root@talk:/data/discourse# ./launcher enter app
Se detectó la arquitectura x86_64.
ADVERTENCIA: El archivo containers/app.yml es legible por todos. Puedes proteger este archivo ejecutando: 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'

¿Es correcto mi método de prueba de solicitud?

Has definido restricciones en el sitio web, y la API espera ver una cabecera Referer en la solicitud de la API, lo que parece ser explícitamente requerido aquí:

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

Para solucionarlo, probablemente necesitarías lo siguiente:

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

En otras palabras, el problema no es causado por tu parte.

Lo que puedes hacer es:

  • Intentar la restricción por IP
  • Desactivar la restricción hasta que se corrija en el plugin

¡Espero que eso ayude!

1 me gusta

Muchas gracias por tu ayuda, con lo anterior he podido pasar la prueba con éxito. Pero he descubierto que todavía tengo el icono de traducción de la Tierra.

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)>