لا يمكن استرداد المشاركات باستخدام API

أحاول استخدام واجهة برمجة تطبيقات Discourse لإنشاء قائمة بجميع المشاركات (المشاركات الأولى فقط) بعلامة محددة. حتى الآن، لم أتمكن إلا من الحصول على أحدث المشاركات، والتي تسترجع حوالي 40 مشاركة، بما في ذلك التعليقات. عندما حاولت استرداد معرف مشاركة محدد، نجح البعض منها، ولكن بالنسبة للبعض الآخر حصلت على الاستجابة
{'errors': ['You are not permitted to view the requested resource.'],'error_type': 'invalid_access'}
على الرغم من أن مفتاح واجهة برمجة التطبيقات الذي أستخدمه لديه وصول إداري إلى جميع المشاركات على Discourse الخاص بنا. هل واجه أي شخص هذه المشكلة من قبل؟

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

هل يمكنك نشر مقتطف الكود الخاص بك؟ (بدون تضمين مفتاح API)
هل ترى أي نمط هنا في ما يعمل وما لا يعمل؟

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

مرحباً @RGJ، لاحظت أنني أستطيع استرداد مشاركات فردية إذا كانت موجودة في القائمة التي تم استردادها في الأصل بواسطة posts.json. لقد استخدمت المقتطف البرمجي أدناه

url = "https://forum.algovera.ai/posts.json"

username = "algovera"

params = {'Api-Key': api_key, "Api-Username": username}

r = requests.get(url = url, params = params)

data = r.json()

ثم حاولت تغيير هذا الاستدعاء إلى https://forum.algovera.ai/posts/{id}.json\"، حيث تم أخذ المعرف (ID) من عنوان URL للمشاركة المحددة التي كنت أنظر إليها.

الرقم الموجود في عنوان URL ليس المعرف، إنه رقم المنشور، وهو نسبي لمعرف الموضوع.
إذا كنت تريد الحصول على معرف المنشور، يمكنك استرداده من JSON الموضوع كـ post_stream.posts[].id

لذلك، المنشورات في هذا الموضوع لديها

معرف الموضوع رقم المنشور المعرف
255455 1 1241013
255455 2 1241026
255455 3 1241056

وأحدث منشور لك في هذا الموضوع هو https://meta.discourse.org/posts/1241056.json

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

حسنًا، شكرًا لك. لقد نجح ذلك، فماذا سأحتاج إلى استدعائه إذا أردت استرداد أحدث المواضيع ثم النص الخام لكل موضوع؟ لقد رأيت استدعاء “List Topics” في المستندات ولكني لست متأكدًا مما يجب أن يكون الـ slug.