Google翻訳APIを設定した後、なぜ地球のアイコンが表示されないのですか?

Google Translator API を設定した後、アースアイコンが表示されないのはなぜですか?

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'



どなたかサポートしていただけますか?

翻訳者にアクセスするための有効なキーが指定されていないようです。支払いが行われたことを確認し、キーを再コピーまたは再生成することをお勧めします。

「いいね!」 2

はい、私のリクエストのテストメソッドは正しいですか?

 DiscourseTranslator::Google.detect(Post.last)

正しいAPIキーを提供しましたが、まだエラーが発生しています。

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

Google翻訳APIキーを入力しましたが、正常に動作しません。解決にご協力ください!


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'

私のリクエストテストメソッドは正しいですか?

ウェブサイトの制限を設定しており、APIリクエストで Referer ヘッダーが必要になるようです。これは、ここで明示的に要求されているようです。

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

修正するには、おそらく次のものが必要になります。

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

つまり、問題はあなた側では発生していません。

できることとしては、次のいずれかです。

  • IPアドレスによる制限を試す
  • プラグインで修正されるまで制限を無効にする

お役に立てば幸いです!

「いいね!」 1

ご協力いただき、誠にありがとうございました。上記のおかげで、テストを無事に完了することができました。しかし、地球の翻訳アイコンがまだ残っていることに気づきました。

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