كيفية رفع صورة باستخدام واجهة برمجة تطبيقات Discourse

مرحبًا بالجميع،

أحاول رفع صورة باستخدام واجهة برمجة التطبيقات (API) الخاصة بـ Discourse أدناه عبر كود Java:
https://discourse.example.com/uploads.json
عن طريق تمرير JSON في الجسم (Body):
{
“type” : “avatar”,
“user_id”: 1,
“synchronous”: true,
“file”: “Binary String”
}

لكنني أحصل في الاستجابة على النتيجة التالية:

{
“failed”: “FAILED”,
“message”: “undefined method `tempfile’ for #String:0x000055fc2e0a01d8
}

أين الخطأ الذي أقوم به؟
يرجى المساعدة.

أواجه نفس المشكلة. @Saurabh_Khandelwal، إذا تمكّنت من إيجاد حل، يرجى الردّ عليّ.

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

يجب أن يُسمَّى المعامل file باسم files[]. راجع هذا الرد للحصول على مثال باستخدام Postman:

هذه بياناتي التجريبية
مصفوفة
(
[type] => avatar
[user_id] => 3
[synchronous] => 1
[file] => 1101000 1110100 1110100 1110000 1110011 111010 101111 101111 1101011 1101001 1111000 101101 1100100 1100101 1110110 101110 1100001 1110011 1110011 1111001 1110011 1110100 101101 1110101 1100011 101110 1100011 1101111 1101100 1110011 1101001 1110100 1100101 1110011 101111 1100100 1100101 1100110 1100001 1110101 1101100 1110100 101111 1100110 1101001 1101100 1100101 1110011 101111 1110000 1101001 1100011 1110100 1110101 1110010 1100101 1110011 101111 110010 110000 110010 110000 101101 110000 110111 101111 1101011 1101001 1111000 1110100 1100101 1100001 1101101 1011111 1101001 1101101 1100111 110001 101110 1101010 1110000 1100111
)

إرسال الملف كسلسلة ثنائية. استلام الاستجابة كما هو موضح أدناه. هذا هو دروبال

/uploads.json أدى إلى استجابة 422 كيان غير قابل للمعالجة: {“failed”:“FAILED”,“message”:“undefined method `tempfile’ for #\u003cArray:0x00007f0d5c784810\u003e”}

محاولة التكامل بين دروبال وديسكورش.

هل تمكنت من جعل هذا يعمل؟ لقد جربت جميع أنواع التوليفات مع Node.js، ولم أستطع جعل هذا يعمل.

أحصل على خطأ 422 كيان غير قابل للمعالجة.

في وثائق Discourse، يُذكر أن نوع المحتوى للطلب هو application/json.

في هذا المنشور، يستخدم مثال Postman form-data، وعندما أراقب المصنّع في واجهة مستخدم Discourse الويب، يستخدم إرسالًا متعدد الأجزاء.

هل يعرف أي شخص كيفية القيام بذلك عبر واجهة برمجة التطبيقات دون استخدام عميل Ruby؟

This still doesn’t appear to be working.

This is the error I get when trying to upload an image, in binary that is.

Unprocessable Entity - {\"failed\":\"FAILED\",\"message\":\"undefined method `tempfile' for an instance of String\"}