Einen Beitrag melden mit defekter API

Ich markiere bestimmte Beiträge mit der API und Python. Dies hat mehrere Jahre funktioniert, bis zu einem kürzlichen Upgrade auf 3.2.0.beta4-dev. Jetzt erhalte ich DiscourseClientError: You are not permitted to view the requested resource. Mein API-Schlüssel ist immer noch gültig und nicht widerrufen. Reverse-Engineering durch manuelles Markieren eines Beitrags zeigt, dass sich die Nutzlast für das Markieren nicht geändert hat (außer vielleicht dem Wert von flag_topic, aber das scheint keine Rolle zu spielen). Irgendwelche Ideen?

       self._post(
            "/post_actions",
            id=post_id,
            post_action_type_id=7, # markieren
            message=msg,
            flag_topic=True
        )

Eine kürzliche Änderung bei der Markierung war die Umstellung auf eine gruppenaktivierte Einstellung anstelle einer Vertrauensstufeneinstellung (flag post allowed groups), könnte das in irgendeiner Weise damit zusammenhängen?

1 „Gefällt mir“

Meine Einstellungen:

Mein API-Schlüssel:

Vielleicht haben also „Alle Benutzer“ keine Berechtigung mehr, etwas zu markieren, und ich benötige einen neuen API-Schlüssel für einen einzelnen Benutzer, der die Berechtigung hat (z. B. mich selbst)? Es ist mir nicht klar, was „Alle Benutzer“ bedeutet. TL0?

Theoretisch, da sich die Standardeinstellung von TL1 während des Wechsels der Einstellungen nicht geändert hat, hätte ich gedacht, dass dieselben Berechtigungen für den API-Schlüssel weiterhin funktionieren würden, obwohl es jetzt auf Gruppen statt auf Vertrauensstufen basiert, könnte etwas anderes eine Auswirkung haben. Es gab einen Bericht, dass die Sichtbarkeit der Gruppe ein Faktor bei einer anderen Eigenart war, die bei einer der anderen Einstellungen aufgetreten ist, die in das Gruppen-erlaubt-Format verschoben wurde. Haben Sie die Sichtbarkeit Ihrer TL1-Gruppe zu irgendeinem Zeitpunkt geändert?

1 „Gefällt mir“

Nein, alle Gruppen sind sichtbar.


Ich habe es auch mit einem neuen API-Schlüssel versucht, diesmal für einen einzelnen Benutzer „discobot“ (mein Webhook läuft als Benutzer discobot), und da discobot TL0 ist, habe ich flag post allowed groups auf TL0 geändert. Immer noch derselbe Fehler – You are not permitted to view the requested resource.

Es funktioniert jetzt, nachdem @discobot auf TL1 erhöht wurde. Ich bin mir nicht sicher, was die Schlussfolgerung ist – stellen Sie einfach sicher, dass Ihr Benutzer sowohl die Vertrauensstufen- als auch die gruppenbasierten Einstellungen erfüllt. Selbst dann kann ich nicht erklären, warum es früher funktionierte und dann kaputt ging.

1 „Gefällt mir“

Hmm. Ich bin mir nicht sicher :thinking: Aber ich bin froh, dass es jetzt funktioniert. :slight_smile: Ich habe den Entwickler, der die Änderung vorgenommen hat, kontaktiert, um zu sehen, ob es noch mehr dazu gibt, aber wir warten vielleicht auf weitere Berichte, um tiefer zu graben, jetzt, da Sie Ihre wieder zum Laufen gebracht haben.

Nun, es funktionierte für kurze Zeit – vielleicht einen Tag. Dann verliert @discobot wieder seine Fähigkeit, Beiträge zu markieren. Um es klarzustellen, dies hat nichts mit der API zu tun – wenn ich @discobot nachahme und Themen durchsuche, ist das Flag-Symbol nicht verfügbar. Wenn ich dann die Vertrauensstufe von @discobot ändere – auch auf eine niedrigere Stufe –, erscheinen die Flag-Symbole wieder. Ich werde versuchen, es besser zu charakterisieren, aber irgendetwas scheint falsch zu sein.

Außerdem weiß ich nicht, ob das Problem nur bei @discobot auftritt. Ich benutze @discobot nur, weil er der Benutzer ist, von dem man natürlich erwarten würde, dass er Beiträge automatisch markiert. Und es hat jahrelang funktioniert.

Ich glaube, Sie müssen sich an einen anderen Benutzer wenden. Es gibt eine Art Magie, die Discobot und System aus den Vertrauensstufengruppen entfernt, sodass alles, was auf Vertrauensstufengruppen basiert und diese Benutzer verwendet, zu seltsamen Ergebnissen führt (sie werden derzeit jedes Mal wieder hinzugefügt, wenn Sie Ihr Forum aktualisieren, und dann nach kurzer Zeit wieder entfernt).

Wenn Sie einen bestimmten Testbenutzer erstellen könnten, um dies auszuprobieren, wären die Ergebnisse viel klarer.

1 „Gefällt mir“

OK, ich habe einen speziellen Benutzer erstellt, um das Flagging über die API durchzuführen. Mal sehen, wie es läuft…

1 „Gefällt mir“

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