Google 번역기 API를 설정했는데 왜 지구 아이콘이 안 보이나요?

구글 번역기 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'



도와주실 수 있는 분 계신가요?

번역기에 액세스하는 데 사용할 유효한 키를 제공하지 않은 것 같습니다. 결제를 완료했는지 확인하고 키를 다시 복사하거나 새로 생성해 보세요.

음, 제 요청 테스트 메서드가 올바른가요?

 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는 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 기반 제한을 시도해 보기
  • 플러그인에서 수정될 때까지 제한을 비활성화하기

도움이 되셨으면 좋겠습니다!

도와주셔서 정말 감사합니다. 위의 내용 덕분에 테스트를 성공적으로 통과할 수 있었습니다. 하지만 여전히 지구 번역 아이콘이 표시되고 있습니다.

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