لا يمكن إضافة مستخدم عبر API

مرحبًا!

نحاول إضافة مستخدم عبر واجهة برمجة التطبيقات (API) باستخدام الطلب التالي:

POST https://discourse.example.de/users
{
    "name": "Bob Tester",
    "email": "example address",
    "password": "#######",
    "username": "testi",
    "active": true,
    "approved": false
}

مفتاح الواجهة البرمجية (API Key) والمستخدم معرفان في رأس الطلب (Header).

يؤدي هذا الطلب إلى الاستجابة التالية:

Status: 200 OK
{
    "success": true,
    "active": false,
    "message": "<p>أنت على وشك الانتهاء! لقد أرسلنا بريدًا إلكترونيًا للتفعيل إلى <b>example address</b>. يرجى اتباع التعليمات الواردة في البريد الإلكتروني لتفعيل حسابك.</p><p>إذا لم تصلك أي رسالة بريد إلكتروني، يرجى التحقق من مجلد البريد العشوائي (Spam).</p>"
}

ولكن لا يظهر أي مستخدم مضاف في نظام Discourse؟

في مثال الاستجابة الوارد في الوثائق (Discourse API Docs)، يوجد معرف مستخدم (user id).

هل لدى أحدكم فكرة حول السبب وراء عدم الحصول على معرف مستخدم في الاستجابة؟

تلك الرسالة في الاستجابة:

هي رسالة البريد الإلكتروني للتأكيد:

وهو ما يعني أنه يتم إرسال بريد إلكتروني للتأكيد إلى المستخدم. بمجرد النقر عليه، سيتم إنشاء الحساب.

هل تستخدم أحدث إصدار من Discourse؟ إذا مررت القيمة "active": true، فلن يتم إرسال بريد إلكتروني للتأكيد. راجع Creating user via API - #11 by blake.

إعجابَين (2)

مرحباً!

شكراً لك على ردك، لكنه لم يحل مشكلتي.

في طلب المثال الخاص بي، استخدمت المعلمة “active”: true، لكنني في الاستجابة حصلت على “active”: false، لذا لا يمكن تفعيل المستخدم - ربما لأنه لم يتم إنشاؤه بعد؟

بغض النظر عن ذلك:

إذا لم أرسل المعلمة “active”: true في طلبي، فلن يتم إرسال بريد إلكتروني للمستخدم.

هل لديك أي أفكار؟

شكراً لك!

هل يمكنك إخبارنا بالإصدار الذي تستخدمه من Discourse؟ سيساعدنا ذلك في معرفة ما إذا كان بإمكاننا تكرار مشكلتك.

بالتأكيد - نحن نستخدم الإصدار 2.6.0.beta5. لا يوجد تحديث متاح لنا.

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

شكرًا جزيلاً، أردت فقط التأكد من أنك لم تكن تستخدم إصدارًا قديمًا.

أنا متأكد تقريبًا من أن بيانات الاعتماد الخاصة بك لا يتم تمريرها بشكل صحيح عند إجراء هذا الطلب. هذه النقطة النهاية خاصة نوعًا ما لأنها تُستخدم في نموذج التسجيل ولا تتطلب في الواقع بيانات اعتماد API لاستخدامها. الاستجابة التي تتلقاها هي عندما يسجل مستخدم جديد، لكننا نكتشف أن الطلب ليس طلب API.

هل يمكنك تجربة إجراء طلب API آخر يتطلب المصادقة، مثل إنشاء فئة، ورؤية ما إذا كان ذلك يعمل؟ يمكنك أيضًا التحقق من صفحة API للمسؤول ومعرفة متى تم استخدام المفتاح آخر مرة لمعرفة ما إذا كان يتم استخدامه بشكل صحيح في طلب إنشاء المستخدم الخاص بك.

تمكنت من تكرار مشكلتك عن طريق إجراء طلب JSON بدون بيانات اعتماد:

طلب JSON بدون بيانات اعتماد

curl -i -sS -X POST "http://localhost:3000/users.json" -H "Content-Type: application/json" -d "{\"name\": \"8525f374d470a2e3f22c\", \"active\": \"true\", \"username\": \"8525f374d470a2e3f22c\", \"email\": \"8525f374d470a2e3f22c@example.com\", \"password\": \"65d18e465472452771e02b3462260ea1\"}"

HTTP/1.1 200 OK

{"success":true,"active":false,"message":"\u003cp\u003eأنت على وشك الانتهاء! لقد أرسلنا بريدًا إلكترونيًا لتفعيل الحساب إلى \u003cb\u003e8525f374d470a2e3f22c@example.com\u003c/b\u003e. يرجى اتباع التعليمات الواردة في البريد لتفعيل حسابك.\u003c/p\u003e\u003cp\u003eإذا لم يصل البريد، تحقق من مجلد البريد غير المرغوب فيه.\u003c/p\u003e"}

مقابل

طلب JSON مع بيانات اعتماد

curl -i -sS -X POST "http://localhost:3000/users.json" -H "Content-Type: application/json" -H "Api-Key: 079fb2bb12d3b436bb11bde8eb58aaa9a36560fa7d79b14b3087aa40b1ebc2c4" -H "Api-Username: blake.erickson" -d "{\"name\": \"da4be85b6046f9c9b9e1\", \"active\": \"true\", \"username\": \"da4be85b6046f9c9b9e1\", \"email\": \"da4be85b6046f9c9b9e1@example.com\", \"password\": \"65d6f0589c5f234de4ad31662b3a17a2\"}"

HTTP/1.1 200 OK

{"success":true,"active":true,"message":"تم تفعيل حسابك وهو جاهز للاستخدام.","user_id":29}


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

نجح الأمر - لم يتم تمرير بيانات الاعتماد بشكل صحيح.

شكرًا جزيلاً لك على مساعدتك، دعم رائع! :slight_smile:

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

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