alexcomp
(Alex comp)
2 نوفمبر 2022، 8:26ص
1
مرحباً
أحتاج مساعدتك من فضلك.
أحاول إنشاء موضوع باستخدام واجهة برمجة تطبيقات 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
لا أعرف ما هو الخطأ، هل يمكنك مساعدتي من فضلك؟
شكرا
pfaffman
(Jay Pfaffman)
2 نوفمبر 2022، 10:45ص
2
لا يمكنك تضمين مفتاح API في عنوان URL (فهو يكشف مفتاحك لأي شخص يمكنه رؤية حركة مرور الويب الخاصة بك). يجب تمرير المفتاح في رؤوس الطلب.
راجع Grant a custom badge through the API للحصول على مثال.
إعجابَين (2)
alexcomp
(Alex comp)
2 نوفمبر 2022، 11:16م
3
مرحباً @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 إعجابات