Ich hoffe, dass das hier passt: Ich würde gerne diverse Links automatisiert in /c/geschichte posten. Die Links habe ich, ich hab für Reddit auch einen passenden Workflow zum Suchen von neuen Geschichts-Links, ich kann etwas Python und hier anscheinend auch mein Profil als Bot markieren. Und wenn man googlet, gibt es anscheinend auch einen Javascript-basierten AI-Art-Bot, eine Javascript-Library und eine etwas spartanische offizielle API-Doku.
Aber ich steh total auf dem Schlauch. Hat jemand den richtigen Tipp, wie ich hier per Python ganz banal einen Link in eine Community einreiche?
Wenn du Links automatisch posten möchtest, würde ich dich bitten, den Account in den Settings als Bot zu kennzeichnen.
Das ginge per Python über die HTTP-API
Den Account habe ich eben als Bot gekennzeichnet. Aber ansonsten - ich steh gerade auf einem Programmierlevel, bei dem ich mithilfe der entsprechenden API-Libraries mit diversen APIs kommunizieren kann, aber wenn ich in die Doku da schaue, bin ich komplett lost. Wie authentifiziere ich mich? Wo sind hier die Endpoints? Wie muss ein Post dann aussehen? Wie sag ich dem Ding jetzt, was der Link ist und was der Linktext?
(Und dich mal etwas anders gefragt: Ist das überhaupt erwünscht hier?)
Puzzle-Lösen gehört zum Programmieren dazu, daher kann ich dir das jetzt nicht vollkommen vorkauen (ohne es nicht direkt selbst zu implementieren), aber ich würde versuchen anhand der TypeScript-API hier zu adaptieren: https://join-lemmy.org/api/classes/LemmyHttp.html#login
Also z.B. bei der login-Methode, das will einen Parameter
form
vom TypLogin
. Wenn du dann in der Doku aufLogin
draufklickst, siehst du, dass es ein Typ mit zwei Feldern ist:username_or_email
:string
password
:string
Ich gehe davon aus, dass die API JSONs frisst, daher das Ganze in einem JSON kodiert:
{ "username_or_email": "mettwurstkaninchen", "password": "123456" }
Dann wieder bei der Login-Methode geschaut, da steht:
HTTP.POST /user/login
D.h. deiner Python HTTP-Client-Bibliothek sagen, sie soll das JSON mittels
post
-HTTP-Methode (und daher im HTTP-Body) an die URLhttps://feddit.de/user/login
schicken.Als Antwort wirst du dann vermutlich wieder irgendein JSON bekommen, mit vermutlich einem
auth
-Feld dessen Inhalt mitey
beginnt.¹Diesen Inhalt kannst du dann in das
auth
-Feld bei der createPost-Methode stopfen. Und das Ganze eben wieder nach dem gleichen Schema befüllen, wie die login-Methode.¹ Das
auth
-Feld beginnt mitey
, weil darin ein Base64-kodiertes JSON ist, und das Zeichen{
in Base64 eben alsey
kodiert wird.