Hallo
,
Ich habe diese hilfreichen Beiträge gelesen (1, 2); jedoch fehlt mir noch etwas, das mich daran hindert, erfolgreich einen Avatar von Python mit der API nach Discourse hochzuladen. Ich bin der Administrator meiner Discourse-Site.
Die gute Nachricht: Es funktioniert in Postman, wie unten gezeigt.
Die nicht so gute Nachricht: Ich konnte dies nicht in Python übersetzen (ich erhalte 400- oder 422-Fehler, je nachdem, was ich versuche). Ich habe Folgendes versucht:
img_data = requests.get("my_image_url").content
data={
"type": "avatar",
"user_id": user_id,
"synchronous": True,
"file": img_data
}
url = "<my site>/uploads.json"
response = requests.request("POST", url, headers=headers, data=data)
Dies gibt mir einen 400-Fehler. Ich habe auch versucht, ein lokales Bild zu verwenden, nur um zu sehen, ob ich es zum Laufen bringen könnte:
with open('my_local_image.jpg', "rb") as f:
image_b64 = base64.b64encode(f.read()).decode("utf8")
data={
"type": "avatar",
"user_id": user_id,
"synchronous": True,
"file": image_b64
}
url = "<my site>/uploads.json"
response = requests.request("POST", url, headers=headers, data=data)
Dies gibt mir einen 422-Fehler:
"failed":"FAILED","message":"undefined method `tempfile\\' for #\\u003cString:0x00007f5befda7af8\\u003e"
Ich habe das Gefühl, dass ich nah dran bin, aber ich bin etwas neu in der API-Nutzung. Jeder Hinweis in die richtige Richtung wäre sehr willkommen!
