こんにちは
、
これらの役立つ投稿を読みました(1、2)。しかし、API を使用して Python から Discourse にアバターを正常にアップロードするのを妨げている何かがまだ欠けているようです。私は自分の Discourse サイトの管理者です。
良いニュース: 以下に示すように、Postman では機能します。
あまり良くないニュース: これを Python に翻訳できませんでした(試した内容に応じて 400 または 422 エラーが発生します)。以下を試しました。
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)
これにより 400 エラーが発生します。機能するかどうかを確認するために、ローカル画像も使用してみました。
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)
これにより 422 エラーが発生します。
"failed":"FAILED","message":"undefined method `tempfile\\' for #\\u003cString:0x00007f5befda7af8\\u003e"
もう少しでできそうな気がしますが、API の使用はまだあまり経験がありません。正しい方向へのポインタをいただけると幸いです!
