فشل في نشر موضوع

حاولت نشر موضوع باستخدام واجهة برمجة التطبيقات، وفشل مع رسالة الخطأ هذه:
{‘action’: ‘create_post’, ‘errors’: [‘Body is too short (minimum is 1 character)’, ‘Body seems unclear, is it a complete sentence?’]}

  • الرسالة المراد نشرها حوالي 25 ألفًا، وهي قائمة بالأخبار
    يمكن نشرها يدويًا دون خطأ.
    ولكن عند نشرها باستخدام واجهة برمجة التطبيقات، تفشل.
    حجم المنشور الافتراضي هو 35 ألفًا (؟)، وقد قمت بزيادته (في الإعدادات) للسماح بهذه الرسالة الأطول.
    -إذا قمت بنشر جملة قصيرة باستخدام الكود أدناه، فإنها تعمل بشكل جيد.

غيرت body min entropy إلى 0، ولم يساعد ذلك أيضًا.

بحثت في المنتدى، ولم أجد حلاً،
هل لديك أي أفكار/اقتراحات، شكرًا…

هذا هو كود بايثون

import requests

# Authentication headers
headers = {
    "Api-Key": '***',
    "Api-Username": 'newsbot',
}

lines = "some news, around 25K"

# Topic data
topic_data = {
    "title":"latest news",
    "raw": lines,
    "category": 28,
}

# Send a POST request to create the topic
response = requests.post('https://www.mydomain.com/posts.json', json=topic_data, headers=headers)

# Check if the request was successful
if response.status_code == 200:
    print("Topic created successfully!")
    topic_id = response.json().get("id")
    print(f"Topic ID: {topic_id}")
else:
    print(response.json())
    print(f"Failed to create the topic. Status code: {response.status_code}")

بالمناسبة، المحتوى المراد نشره هو قائمة أخبار مثل هذه

[grid]
![](https://static01.nyt.com/images/2023/10/16/multimedia/animage.jpg)
![](https://content.api.news/v3/images/bin/image.jpg)
[/grid]


<details>
<summary><b>news title</b></summary>
news conentnews conentnews conentnews conentnews
conent news conentnews conentnews conentnews conentnews
conentnews conentnews conentnews conentnews conentnews
conentnews conentnews conentnews conentnews conent
about this long for one news

[The New source 2023-10-16T21:16:45Z](https://www.newssource.com/live/anews)

جرب إضافة \"skip_validations\": true إلى topic_data. (هناك حالات حيث يجب أن تكون true محاطة بعلامات اقتباس، ولكن لا أعتقد أن هذا هو الحال مع بايثون.)

سيؤدي المعامل skip_validations إلى قيام Discourse بتخطي إجراء التحقق من الصحة مقابل إعدادات الموقع مثل min topic title length و body min entropy.

3 إعجابات

شكرا @simon

جربت

"skip_validations": True

لقد قام بقمع الخطأ، وأنشأ موضوعًا، ولكنه فارغ، هممم…
أشك ربما يجب ترميز صيغة HTML في محتوى المنشور الخاص بي؟

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

تخمين عشوائي… ربما قم بتعيين Content-Type كـ application/json؟

تمت التجربة في الهيدر أو الجسم (topic_data)، ولا يزال ينشئ منشور موضوع فارغ جديد.

لقد جربت برنامج Python النصي الخاص بك (دون تحديد نوع المحتوى) على نسختي وعمل بشكل مثالي:

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

يجب أن أسأل، لكن هل يعمل الكود الخاص بك مع نص قصير؟ هل تحققت من أنك تمرر بالفعل محتوى غير فارغ في واجهة برمجة التطبيقات؟

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

نعم، يعمل للمحتوى القصير، ولكن ليس للمحتوى الطويل (مرفق)، 29848 حرفًا، ليس بسبب الطول،
مشتبه به ربما حرف خاص؟
شكرا لمساعدتك!
test.zip (12.1 KB)

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

شكرا @Arkshine
نعم، تم ذكره في المشاركات أعلاه…

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

لقد جربت النص الخاص بك وهو يعمل:

هل قمت بتضمين السلسلة النصية الخاصة بك بعلامات اقتباس ثلاثية (إما ''' أو \"\"\") لتجنب مشاكل الهروب؟

كيف تقوم بتحميل محتوى منشورك في البرنامج النصي الخاص بك بلغة بايثون (أفترض أنك تأخذ المحتوى الخاص بك من مصدر خارجي)؟

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

نفس الشيء من جانبي؛ ليس لدي مشكلة في المحتوى الخاص بك. أعتقد أن هناك خطأ ما في كيفية استرداد/تحميل البيانات. :thinking:

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

حسناً… شكراً على المحاولة… مثير للاهتمام…
لقد قمت بتحميل محتوى الأخبار من ملف بهذا الشكل…

with open(sys.argv[1]) as f:
    lines = [line for line in f]
 
print(lines)
print(len(lines))

لقد حصل على محتوى الملف بشكل صحيح، حسناً…

هل حاولت تمرير encoding="utf8" في open()؟ قد يساعد ذلك.

إعجابَين (2)

نعم، هناك شيء غير صحيح في تحميل محتوى الملف… شكراً… إنذار كاذب… :slight_smile:

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

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