Это часть серии статей, в которых я рассказываю о своем процессе изучения программирования API в целом и Medium API в частности. Чтобы начать эту серию, см. Часть 1, Часть 2 и Часть 3, а также мой пост Получение данных из среды.

В моих последних двух сообщениях я рассмотрел процесс получения данных из Medium. Medium сильно ограничивает данные, доступные через API, и, как обсуждается в моем сообщении «Получение данных из Medium», процесс экспорта ваших сообщений из Medium и их импорта на другую платформу не так прост, как хотелось бы. Не обращайте внимания на экспорт сообщений других пользователей или всех сообщений определенной публикации.

Однако получить данные в Medium очень просто. У них есть не только красивый, простой в использовании редактор для написания сообщений, но и Medium API позволяет очень просто создавать новые сообщения и черновики на их платформе. В этой статье я расскажу об этом процессе.

Аутентификация

Мы начнем с аутентификации, используя Python SDK, который предоставляет Medium (и который я описываю в Части 3). Если вы уже прошли аутентификацию - например, из действий части 3 - вы можете пропустить эту часть.

Откройте терминал Python и введите следующее (подставляя свои данные вместо X - см. Часть 3, если вы не знаете, что это за данные):

from medium import Client import requests client = Client(application_id="xxxxxxxxxxx", application_secret="xxxxxxxxxxxxxxxxxxxxxxxxx") auth_url = client.get_authorization_url(“secretstate”, “https://pushpullfork.com/callback", [“basicProfile”, “publishPost”])print(auth_url)

Это вернет длинный URL. Скопируйте этот URL-адрес, вставьте его в окно браузера и нажмите Enter / return. URL изменится с того, что вы ввели, и будет заканчиваться на «code = XXXXXXXX», где X представляет ваш секретный код. Скопируйте этот код и вернитесь в окно Python. (Опять же, я не знаю способа автоматизировать эту часть процесса. Если вы это сделаете, дайте мне знать!)

В терминале Python введите следующее (заменив X на код, который вы только что скопировали):

auth = client.exchange_authorization_code(“XXXXXXXX”, “https://pushpullfork.com/callback")client.access_token = auth[“access_token”]user = client.get_current_user()

Теперь вы прошли аутентификацию!

Публикация на Medium

Аутентификация - это сложная часть, как я часто обнаруживаю, с API. Публикация - это проще простого. Фактически, с Python SDK это всего лишь одна строка кода.

post = client.create_post(user_id=user["id"], title="Title", content="<h2>Test title</h2><p>Trying to post with the Medium API.</p>", content_format="html", publish_status="draft")

Эта строка кода создаст черновик сообщения, который выглядит примерно так:

Заголовок теста
Попытка публикации с помощью Medium API.

Я рекомендую использовать publish_status = ”draft”, чтобы вы могли просмотреть все на Medium перед публикацией, особенно если вы встраиваете мультимедиа. Однако, если вы уверены в своем содержании и форматировании, вы можете изменить его на publish_status = ”public”.

Добавить медиафайлы просто. Просто включите правильные HTML-теги. Medium автоматически вставляет видео, но извлекает изображения из связанного источника и обслуживает их из собственной сети доставки контента. Это означает, что вы можете импортировать изображения, не беспокоясь о том, что они будут удалены из источника. У среднего они всегда будут. Но вы во власти тех, кто размещает видео, которое вы встраиваете.

Вы также можете добавлять теги в вызов API. Вот более содержательный вызов, который включает изображение (из одного из моих сообщений в блоге) и образцы тегов:

post = client.create_post(user_id=user["id"], title="Title", content="<h2>Test title</h2><p>Trying to post with the Medium API.</p><p>And testing out an image...<br/><img src=\"http://kris.shaffermusic.com/assets/images/scaffold.jpg\" />", tags=['tag1', 'tag2'], content_format="html", publish_status="draft")

Если вы отправили этот звонок при аутентификации в своей учетной записи, вы увидите сообщение в своем списке черновиков. И если вы открыли черновик, вы могли бы проверить элемент фотографии, чтобы убедиться, что он действительно был получен с моего сервера и обслуживается CDN Medium. Нажмите «Опубликовать», чтобы просмотреть (и отредактировать) список тегов. tag1 и tag2 уже должны быть в списке.

Довольно просто! После того, как вы пройдете аутентификацию, единственная сложная часть - придумать контент для публикации!

API против «Импортировать историю»

Зачем использовать API для публикации на Medium, если вы можете просто перейти на Medium и импортировать историю? В конце концов, все, что вам нужно сделать, это вставить URL-адрес оригинала, а Medium сделает все остальное. И в обоих случаях вам, вероятно, потребуется немного подстроиться.

Я вижу здесь ценность API в сценарии перекрестной публикации. Предположим, вы следуете модели POSSE (публикация на собственном сайте, распространение в других местах). Вам нравится создавать контент в своем собственном домене (WordPress, Jekyll, Known, Ghost…), но вы хотите объединяться в такие места, как Medium, и ссылаться на свои учетные записи в социальных сетях для увеличения читательской аудитории. API Medium упрощает автоматическую кросс-публикацию. У Medium уже есть официальный плагин WordPress для этого. Но API может поддерживать разработку плагинов и инструментов для других платформ. Я, наверное, добавлю, например, возможность кросс-постинга в Peasy. И я работаю над чем-то, что упростило бы запись в одном месте как для Jekyll (то есть GitHub Pages), так и для Medium.

Я также предполагаю, что API упростит или, по крайней мере, позволит импортировать большой пакет сообщений с другой платформы на Medium. Medium уже поддерживает импорт из файла экспорта WordPress, но мне не встречались инструменты для других платформ. Если вы хотите переместить больше, чем несколько сообщений с Tumblr или Jekyll на Medium, вероятно, лучше всего написать сценарий для API. (И не забудьте поделиться этим кодом, чтобы его могли использовать другие!)

Конечно, как я писал вчера, перенос ваших данных с Medium на другую платформу - это своего рода боль. Так что лично я вижу ценность прежде всего в перекрестной публикации или перемещении старых сообщений на Medium, чтобы я мог синхронизировать публикацию Medium с моим собственным сайтом, а затем перекрестно размещать будущие добавления.

Что бы вы ни делали с помощью Medium API, перенести контент в Medium очень просто. После аутентификации остается всего одна строчка кода!

Если вы используете Medium API, особенно в сочетании с собственным доменом, свяжитесь с нами. Я хотел бы услышать о том, что вы делаете!

Изображение от paul bica.

Первоначально опубликовано на kris.shaffermusic.com.