Warum gibt es kein Erd-Symbol, nachdem ich die Google Translator API konfiguriert habe?

Warum wird nach der Konfiguration der Google Translator API kein Erdsymbol angezeigt?

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'



Kann mir jemand helfen?

Es sieht so aus, als hätten Sie keinen gültigen Schlüssel für den Zugriff auf den Übersetzer angegeben. Ich würde überprüfen, ob Sie die Zahlung geleistet haben und den Schlüssel erneut kopieren oder neu generieren.

2 „Gefällt mir“

Okay, ist meine Testmethode korrekt?

 DiscourseTranslator::Google.detect(Post.last)

Ich habe den korrekten API-Schlüssel angegeben, erhalte aber immer noch den Fehler:

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

Ich habe den Google Translator API-Schlüssel eingegeben, aber er funktioniert nicht richtig. Bitte helfen Sie bei der Lösung!


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'

Ist meine Testmethode für die Anfrage korrekt?

Sie haben Website-Beschränkungen definiert, und die API erwartet, dass in der API-Anfrage ein Referer-Header vorhanden ist, der hier explizit erforderlich zu sein scheint:

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

Um dies zu beheben, benötigen Sie wahrscheinlich Folgendes:

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

Mit anderen Worten, das Problem wird nicht von Ihrer Seite verursacht.

Was Sie tun können, ist entweder:

  • Versuchen Sie die Beschränkung nach IP
  • Deaktivieren Sie die Beschränkung, bis sie im Plugin behoben ist

Ich hoffe, das hilft!

1 „Gefällt mir“

Vielen Dank für Ihre Hilfe, mit dem oben Genannten konnte ich den Test erfolgreich bestehen. Aber ich habe festgestellt, dass ich immer noch das Erdübersetzungssymbol habe.

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