الحالات التي تكون فيها admin/users.json?email=foobar أو admin/users/list/all.json?email=foobar تُرجع مصفوفة فارغة

مرحباً،

حسب العنوان، عندما أقوم بتشغيل نقاط النهاية المذكورة أعلاه، أحصل على استجابة [] في Postman. معظمها [] إذا لم يكن لدى المستخدم foobar أي موضوع تم إنشاؤه، ولكن هناك مستخدم واحد قام للتو بإنشاء موضوع، فإن استجابة الاستعلام أعلاه تكون [] أيضًا، بينما أعتقد أن كلاهما يجب أن يعيد دائمًا معلومات المستخدمين لأن هذه المعلومات الأساسية (عنوان IP المسجل، اسم المستخدم) هي معلومات المستخدمين عند إنشاء حساباتهم للتو.

بالمناسبة، لا يمكنني العثور على نقطة النهاية admin/users.json في https://docs.discourse.org/. هل تم إزالتها ولم يعد من المفترض استخدامها. شكرًا!

إعجاب واحد (1)

هناك أيضًا نقطة النهاية هذه /admin/users/list/{flag}.json التي يمكنك استخدامها.

لتصفية حسب البريد الإلكتروني يمكنك القيام بما يلي:

http://localhost:4200/admin/users/list/active.json?filter=name%40example.com&show_emails=true&order=&asc=&page=1

سأقوم بمراجعة وثائق واجهة برمجة التطبيقات لنقاط النهاية هذه وأرى ما إذا كنا بحاجة إلى إجراء بعض التحديثات.

مرحباً @blake،

ماذا لو ما زلت أتصل بـ admin/users.json، هل سأحصل على 404 أم يمكنني الاستمرار في استخدامه في الكود الخاص بي. إصدار تثبيت discourse الخاص بي هو 3.4.0.beta2، مما يعني أنه لا يزال بإمكاني استخدام admin/users.json؟

الشيء الغريب هو أنني لا أستطيع العثور على admin/users/list/all.json?email في https://docs.discourse.org/.

نعم، هذا جيد تمامًا. يمكنك الاستمرار في استخدام /admin/users.json. إنه يستخدم نفس الكود الأساسي تمامًا مثل /admin/users/list/{flag}.json. ربما يكون هذا أحد الأسباب التي لم يتم توثيقه بها بعد.

أنا قادر على جعل /admin/users.json يُرجع مستخدمًا جديدًا تمامًا بدون أي مواضيع.

curl -i -sSL -X GET "http://localhost:4200/admin/users.json?email=982f145c7@example.com"  \
-H "Api-Key: ..."  \
-H "Api-Username: blake"

HTTP/1.1 200 OK

[
  {
    "id": 2731,
    "username": "982f145c7",
    "name": "982f145c7",
    "avatar_template": "/letter_avatar_proxy/v4/letter/9/46a35a/{size}.png",
    "active": true,
    "admin": false,
    "moderator": false,
    "last_seen_at": null,
    "last_emailed_at": null,
    "created_at": "2025-04-29T12:31:52.894Z",
    "last_seen_age": null,
    "last_emailed_age": null,
    "created_at_age": 103.259451,
    "trust_level": 1,
    "manual_locked_trust_level": null,
    "title": null,
    "time_read": 0,
    "staged": false,
    "can_be_deleted": true,
    "silence_reason": "",
    "days_visited": 0,
    "posts_read_count": 0,
    "topics_entered": 0,
    "post_count": 0
  }
]

تحتاج إلى التأكد من استخدام عنوان البريد الإلكتروني الدقيق وإلا ستحصل على مصفوفة فارغة كنتيجة.

شكراً @blake. خطئي لعدم تشفير علامة + في سلسلة الاستعلام، وهذا ما تسبب في الاستجابة الفارغة. مع التشفير الصحيح، تم إرجاع النتائج المتوقعة.

أفترض أن السبب نفسه ينطبق على admin/users/list/all.json?email على الرغم من أنه لا يظهر في المستندات.

إعجاب واحد (1)

هذا موثق هنا في الواقع:

https://docs.discourse.org/#tag/Admin/operation/adminListUsers

ولكن all ليست “علامة” صالحة لتمريرها.

ستحتاج إلى التقسيم إلى صفحات للحصول على جميع المستخدمين.

http://localhost:4200/admin/users/list/active.json?show_emails=false&page=1
http://localhost:4200/admin/users/list/active.json?show_emails=false&order=&asc=&page=2
إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.