Olá
,
Li estes posts úteis (1, 2); no entanto, ainda me falta algo que me impede de carregar com sucesso um avatar do Python para o Discourse usando a API. Eu sou o administrador do meu site Discourse.
A boa notícia: Funciona no Postman, como mostrado abaixo.
A nem tão boa notícia: Não consegui traduzir isso para Python (obtendo erros 400 ou 422, dependendo do que eu tento). Tentei o seguinte:
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)
Isso me dá um erro 400. Eu também tentei usar uma imagem local apenas para ver se conseguia fazê-la funcionar:
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)
Isso me dá um erro 422:
"failed":"FAILED","message":"undefined method `tempfile\\' for #\\u003cString:0x00007f5befda7af8\\u003e"
Sinto que estou perto, mas sou um pouco novo em usar API. Qualquer dica na direção certa seria muito apreciada!
