Bei dem Versuch, ein Thema über die API zu posten, ist folgender Fehler aufgetreten: {‘action’: ‘create_post’, ‘errors’: [‘Body is too short (minimum is 1 character)’, ‘Body seems unclear, is it a complete sentence?’]}
Die zu postende Nachricht ist etwa 25.000 Zeichen lang, eine Liste von Nachrichten.
Manuell kann ich sie ohne Fehler posten.
Wenn ich sie jedoch über die API poste, schlägt sie fehl.
Die Standard-Postgröße beträgt 35.000 Zeichen (?), ich habe sie bereits (in den Einstellungen) erhöht, um diese längere Nachricht zuzulassen.
Wenn ich mit dem folgenden Code einen kurzen Satz poste, funktioniert es einwandfrei.
Ich habe body min entropy auf 0 gesetzt, aber das hat auch nicht geholfen.
Ich habe das Forum durchsucht, aber keine Lösung gefunden.
Hat jemand eine Idee/Vorschläge? Vielen Dank…
Hier ist der Python-Code:
import requests
# Authentifizierungsheader
headers = {
"Api-Key": '***',
"Api-Username": 'newsbot',
}
lines = "einige Nachrichten, etwa 25.000 Zeichen"
# Thema-Daten
topic_data = {
"title": "neueste Nachrichten",
"raw": lines,
"category": 28,
}
# Senden einer POST-Anfrage zum Erstellen des Themas
response = requests.post('https://www.mydomain.com/posts.json', json=topic_data, headers=headers)
# Prüfen, ob die Anfrage erfolgreich war
if response.status_code == 200:
print("Thema erfolgreich erstellt!")
topic_id = response.json().get("id")
print(f"Thema-ID: {topic_id}")
else:
print(response.json())
print(f"Fehler beim Erstellen des Themas. Statuscode: {response.status_code}")
Übrigens, der zu postende Inhalt ist eine Liste von Nachrichten wie diese:
[grid]


[/grid]
<details>
<summary><b>Nachrichtentitel</b></summary>
NachrichteninhaltNachrichteninhaltNachrichteninhaltNachrichteninhaltNachrichten
inhaltNachrichteninhaltNachrichteninhaltNachrichteninhaltNachrichteninhalt
NachrichteninhaltNachrichteninhaltNachrichteninhaltNachrichteninhaltNachrichteninhalt
NachrichteninhaltNachrichteninhaltNachrichteninhaltNachrichteninhaltNachrichten
Dies ist für eine Nachricht lang.
[Die neue Quelle 2023-10-16T21:16:45Z](https://www.newssource.com/live/anews)
Versuchen Sie, \"skip_validations\": true zu den topic_data hinzuzufügen. (Es gibt Fälle, in denen true in Anführungszeichen eingeschlossen werden muss, aber ich glaube nicht, dass dies bei Python der Fall ist.)
Der Parameter skip_validations veranlasst Discourse, die Validierungen gegen Website-Einstellungen wie min topic title length und body min entropy zu überspringen.
Es hat den Fehler unterdrückt, ein Thema erstellt, aber es ist leer, hmm…
Ich vermute, vielleicht muss die HTML-Syntax in meinem Post-Inhalt kodiert werden?
Ich muss es fragen, aber funktioniert Ihr Code mit einem kurzen Text? Haben Sie überprüft, ob Sie tatsächlich nicht leere Inhalte an die API übergeben?
Ja, es funktioniert für kurze Inhalte, aber nicht für die langen (angehängt), 29848 Zeichen, nicht wegen der Länge,
vermutlich vielleicht ein Sonderzeichen?