إنشاء موضوع باستخدام واجهة برمجة تطبيقات Discourse

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

https://myDiscourse.com/posts.json?title=New+test+posted&raw=new+posted+text+to+test+creation+by+api&category=45&api_key=xxxxxxxxxxxxxxxxxxxxxxxx&api_username=admin

لا أعرف ما هو الخطأ، هل يمكنك مساعدتي من فضلك؟

شكرا

لا يمكنك تضمين مفتاح API في عنوان URL (فهو يكشف مفتاحك لأي شخص يمكنه رؤية حركة مرور الويب الخاصة بك). يجب تمرير المفتاح في رؤوس الطلب.

راجع Grant a custom badge through the API للحصول على مثال.

إعجابَين (2)

مرحباً @pfaffman
شكراً لمساعدتك. لقد حاولت وفقاً للمثال ولكن هناك خطأ:

401 Authorization Required

السكريبت الخاص بي:

$apikey = "xxxxxxxxxxxxxxxxxxxx";

	$username = "xxxxxxxxxxxxxxxxx";

	$title = "test";
	$raw = "message";
	$category = 9;

	$url = 'https://myDiscourse.com/posts.json';
	$post_fields = array(
		'title' => $title,
		'raw' => $raw,
		'category' => $category,
	);
	$headers = array("Content-Type: multipart/form-data;","Api-Key: $apikey","Api-Username: $username",);

	$ch = curl_init();
	curl_setopt( $ch, CURLOPT_URL, $url );
	curl_setopt( $ch, CURLOPT_POST, 1 );
	curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
	curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
	curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( $post_fields ) );
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

	$result = curl_exec( $ch );

	if ( curl_errno( $ch ) !== 0 ) {
		echo 'Error:' . curl_error($ch);
	}

	curl_close( $ch );

لقد ارتكبت خطأ بالتأكيد ولكن لا أعرف ما هو. هل يمكنك مساعدتي من فضلك؟

شكراً

شكراً على الكود. من الصعب تصحيح الأخطاء بالكامل دون رؤية كل الكود. أوصي بالاستعلام عن واجهة برمجة التطبيقات خارج البرنامج النصي نفسه. على سبيل المثال، يمكنك استخدام curl

curl -X GET "https://mydiscourse.com/posts.json" \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: michael"

إذا لم تكن مرتاحًا لاستخدام سطر الأوامر أو استخدام curl، أوصي باستخدام Postman لتصحيح المشكلة المتعلقة بواجهة برمجة التطبيقات. يعد Postman ضروريًا بالنسبة لي كمطور عند اختبار واجهات برمجة التطبيقات أو بنائها.

إليك مساحة عمل Postman مع إعدادات مسارات Discourse. ما عليك سوى تكوين مفتاح واجهة برمجة التطبيقات واسم المستخدم الخاص بك.
Discourse API Documentation Postman API Network

3 إعجابات