Добавление изображений к сообщениям в API

Как добавить изображения или файлы в будущую тему?

Вы решили эту проблему?

Вам следует загрузить файл и получить его URL, а затем опубликовать его.

r = requests.put()
p = "http:"+r.json()['url']

Привет! Я попробовал использовать стороннее облачное хранилище для изображений, а затем применял теги img для отображения контента в темах или постах, так как это экономит место на сервере.

Привет @FunnySmile, я пытаюсь вставить изображение с помощью тега img, как показано ниже, но оно не отображается?

<img src="https://unsplash.com/photos/JoZazcPhW5Y" />

Можете, пожалуйста, помочь?

Стоит отметить, что облачное хранилище изображений (cloud bed) обычно не разрешает вызовы со сторонних веб-сайтов. Как правило, часть облачных сервисов возвращает адрес изображения, и некоторые из них позволяют вызовы, а другие — нет. В таких случаях они обычно предоставляют специальные URL-адреса для тегов img. Если этого не происходит, возможно, облачное хранилище не разрешает вызовы со сторонних сайтов. В этом случае вы можете использовать режим разработчика в браузере, затем перейти на вкладку «Сеть» (Network), чтобы увидеть, какие ошибки возникают при загрузке изображений.

Вы можете просто добавить URL изображения без каких-либо HTML-тегов img:

https://unsplash.com/photos/JoZazcPhW5Y

как здесь:

https://unsplash.com/photos/JoZazcPhW5Y

и Discourse автоматически создаст для него превью. Но это даже не ссылка на само изображение, а ссылка на страницу на сайте unsplash.com. Вам нужно использовать прямую ссылку на изображение:

https://images.unsplash.com/photo-1658603458978-4a32b8cdadb7?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3272&q=80

Если вы используете API, вы можете включить URL изображения в поле ‘raw’ сообщения.

Привет, @blake
Я попробовал, как вы и советовали. Вот тело моего POST-запроса:

Когда я посмотрел на пост, он выглядел так (показывается только ссылка, а не изображение). Если же я открываю ссылку в браузере, то изображение отображается:

С уважением,
Читта

Можно ли добавить URL изображения на отдельную строку?

asdfasdfasdf https://stayrightcon.com/wp-content/uploads/2020/05/Stayright-logo_resolution-72ppi.png

asdfasdf

https://stayrightcon.com/wp-content/uploads/2020/05/Stayright-logo_resolution-72ppi.png

Я тоже пытаюсь найти то же самое… разместить изображение в API постов. Хотя я следовал шагам для загрузки изображения и получения URL… но как нам отправить URL в полезной нагрузке? Отправляя его в поле raw, он публикуется в виде текста… есть ли способ добавить поле изображения в API постов? Пожалуйста, помогите.

Извините, но я пока не понимаю, что вы имеете в виду. Мое следующее решение — использовать стороннее облачное хранилище изображений для загрузки картинки, а затем вернуть URL-адрес изображения.

<img src="url" />

Верно. Передайте его в виде ссылки в формате Markdown.

![image|581x455](upload://c4MB1Yzppr5Omv68MoJBQINqqiB.png)

Нет, потому что это тот же рабочий процесс, который используется в интерфейсе композера. Вам потребуется выполнить два вызова API: один для загрузки изображения и другой для включения URL в полезную нагрузку поста.

Да, верно, именно так я это реализовал… достаточно передать в поле raw API публикации строку: “[image|581x455(upload://c4MB1Yzppr5Omv68MoJBQINqqiB.png)]”. Здесь:

  1. image — любое имя, которое вы хотите присвоить;
  2. upload://c4MB1Yzppr5Omv68MoJBQINqqiB.png — это короткая ссылка, которую мы получаем при загрузке изображения через API загрузки.

Шаги:

  1. Сначала нужно загрузить изображение через API /upload.json.
  2. Затем передать короткую ссылку в указанном выше формате вместе с остальным содержимым поста в поле ‘raw’.

Спасибо за ваш ответ, @blake.