هل هناك طريقة لعرض إعلانات داخلية بناءً على موقع المستخدم الحالي؟

هذا لأنه يعيد فقط محتوى https://your-discourse.com/admin/users/{user_id}.json. يتجاهل جزء ip-info، إنه ليس نقطة نهاية صالحة هنا.

ونعم، لم أفكر في ذلك :person_facepalming: ولكن نعم، أعتقد أنك ربما تحتاج إلى مفتاح Maxmind لإعادة الموقع.

لذا، لتلخيص:

  1. إذا كنت تريد الحصول على عنوان IP للمستخدم، فأنت بحاجة إلى إجراء طلب GET (مع بيانات اعتماد المسؤول) إلى https://your-discourse.com/admin/users/{user_id}.json. سيعيد عنوان IP ضمن معلومات المستخدم الأخرى.

  2. إذا كنت تريد تحديد موقع عنوان IP، فأنت بحاجة إلى مفتاح Maxmind (لإضافته في app.yml)، وإجراء طلب GET إلى نقطة النهاية هذه: https://your-discourse.com/admin/users/ip-info.json?ip={user_ip}.

هناك وثائق واجهة برمجة التطبيقات: https://docs.discourse.org/
ولكن ليست كل نقاط النهاية مدرجة هنا. واجهة برمجة تطبيقات Discourse سهلة الهندسة العكسية للغاية: Reverse engineer the Discourse API. هذه هي الطريقة التي حصلت بها على المعلومات هنا.