Ich denke, das ist ein neuerer Bug, der aufgetaucht ist. Mein Kunde nutzt Discourse als Service, gehostet von den tollen Discourse-Mitarbeitern. Wir verwenden den API-Endpunkt /posts.json, um die 5 neuesten Beiträge des Forums auf der Website aufzulisten (https://forum.bonsaimirai.com/posts.json). Diese Anfrage stellen wir serverseitig mit curl.
Kürzlich haben wir bemerkt, dass auf unserer Seite nur immer 3 oder 4 der neuesten Beiträge angezeigt wurden. Es sieht so aus, als ob wir bei einer Anfrage ohne API-Schlüssel nur diese sehr kurze Liste neuerer Beiträge erhalten. Wenn wir jedoch den API-Schlüssel zusammen mit einem API-Benutzernamen verwenden, sehen wir eine größere Anzahl von Beiträgen.
Wir möchten, dass sich der Endpunkt /posts.json so verhält wie früher. Wir sollten in der Lage sein, eine beliebige Anzahl vorheriger Beiträge zu erhalten, wie es früher der Fall war. Wenn wir den API-Schlüssel plus Benutzernamen verwenden, rufen wir am Ende Beiträge ab, die wir nicht allen Benutzern anzeigen möchten (aus Kategorien mit Benutzertier- oder Gruppenbeschränkungen).
Gibt es neue Parameter für die posts.json-Anfrage, mit denen wir die gewünschte Anzahl von Ergebnissen angeben können? Ist dies ein Fehler, der nur für die Version von Discourse gilt, die für den gehosteten Service verwendet wird? Mir ist aufgefallen, dass meta.discourse.org dieses Problem nicht aufweist.
That implies you may have special security that keeps some of the posts from being visible to anonymous users?
1 „Gefällt mir“
@codinghorror I think I just realized why this is happening. We do have a category on our forum that is restricted to a special group of paying users on our main site. Anonymous / “normal” logged in users can’t access this category.
I’m going to guess that if a single topic in that special category contains some large number of the most recent posts to the site, then they’re simply omitted from the posts.json endpoint for anonymous users. And thus, we exceed whatever the behind-the-scenes limit is for that endpoint. So we end up getting the truncated list that I’m seeing in this specific moment in time when requesting that feed anonymously.
Am I on to something here?
This is probably an edge case. But does it make sense to make a feature request for that endpoint so that it always returns the X number of most recent posts, relevant to whatever level of permissions the request is being made from?
2 „Gefällt mir“
That feature already exists, include the API key of a user with the desired permissions.
2 „Gefällt mir“
Thanks @codinghorror.
This is exactly what I’ve done. I make a request for the /posts.json using my API key with a “dummy” user possessing the desired permissions since not all members of our website have created accounts on the forum yet.
Everything is working as expected.
3 „Gefällt mir“