لماذا لا توجد أيقونة الكرة الأرضية بعد إعدادي لـ Google Translator API؟

لماذا لا يوجد رمز الأرض بعد تكوين واجهة برمجة تطبيقات مترجم جوجل؟

root@talk:/data/discourse# ./launcher enter app
تم اكتشاف بنية x86_64.
تحذير: الملف containers/app.yml قابل للقراءة من قبل الآخرين. يمكنك تأمين هذا الملف عن طريق تشغيل: 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_REFERER_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'

لقد قمت بإدخال مفتاح واجهة برمجة تطبيقات مترجم جوجل، ولكنه لا يعمل بشكل صحيح، يرجى المساعدة في حله!


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'

هل طريقة اختبار طلبي صحيحة؟

لقد قمت بتحديد قيود على الموقع، وتتوقع واجهة برمجة التطبيقات رؤية رأس 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)>