Быстрый старт
Ниже представлена инструкция по загрузке RSS-канала в Вебмастер.
Шаг 1. Получите OAuth-токен
Для работы с API Турбо страниц необходимо получить авторизационный токен, например, с помощью Вебмастера:
-
Перейдите на страницу Турбо‑страницы для контентных сайтов → Источники.
-
В блоке Загрузка через API нажмите кнопку Получить токен.
Полученный OAuth-токен необходимо передавать в каждом запросе в HTTP-заголовке Authorization
.
Шаг 2. Получите идентификатор пользователя
Идентификатор пользователя необходим при вызове ресурсов API Турбо‑страниц. Он передается в path-параметре user-id
.
Чтобы получить идентификатор, используйте операцию GET /v4/user/.
Пример:
curl -X GET \
'https://api.webmaster.yandex.net/v4/user' \
-H 'Authorization: OAuth oauth_token'
Идентификатор пользователя возвращается в поле user-id
.
Шаг 3. Получите ссылку для загрузки RSS-канала
Чтобы получить ссылку для загрузки, используйте операцию GET /v4/user/{user-id}/hosts/{host-id}/turbo/uploadAddress.
Внимание
Перед публикацией Турбо‑страниц рекомендуется проверить валидность разметки и правильность отображения в режиме DEBUG. Режим задается с помощью query-параметра mode
при получении адреса для загрузки. Также рекомендуется ознакомиться с ограничениями для RSS-каналов.
Пример:
curl -X GET \
'https://api.webmaster.yandex.net/v4/user/12345678/hosts/https:example.com:443/turbo/uploadAddress?mode=PRODUCTION' \
-H 'Authorization: OAuth oauth_token'
Ссылка для загрузки возвращается в поле upload_address
. Ее необходимо использовать для загрузки RSS-канала.
Шаг 4. Загрузите RSS-канал
Чтобы загрузить RSS-канал, отправьте POST-запрос на адрес, который получили в предыдущем шаге. В запросе необходимо указать заголовок Content-Type: application/rss+xml
и передать RSS-канал в теле запроса в виде бинарного файла или в виде строки.
Пример:
curl -X POST \
https://api.webmaster.yandex.net/v4/upload/turbo/Dz3L9xOfnCecrcgv3jdTInxCY8tMl__tDWwJV9jB1VkdUmDyqx94u-11JqUte05eXYkX49q1Z9CZAsbBgKkdIQ==/ \
-H 'Authorization: OAuth oauth_token' \
-H 'Content-Type: application/rss+xml' \
-d '<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:yandex="http://news.yandex.ru" xmlns:turbo="http://turbo.yandex.ru">
<channel>
<item turbo="true">
<title>Заголовок страницы</title>
<link>https://example.com</link>
<turbo:content>
<![CDATA[
<header>
<h1>Ресторан «Полезный завтрак»</h1>
<h2>Вкусно и полезно</h2>
<figure>
<img src="https://avatars.mds.yandex.net/get-sbs-sd/403988/e6f459c3-8ada-44bf-a6c9-dbceb60f3757/orig">
</figure>
<menu>
<a href="https://example.com/page1.html">Пункт меню 1</a>
<a href="https://example.com/page2.html">Пункт меню 2</a>
</menu>
</header>
<p>Как хорошо начать день? Вкусно и полезно позавтракать!</p>
<p>Приходите к нам на завтрак. Фотографии наших блюд ищите <a href="#">на нашем сайте</a>.</p>
<h2>Меню</h2>
<figure>
<img src="https://avatars.mds.yandex.net/get-sbs-sd/369181/49e3683c-ef58-4067-91f9-786222aa0e65/orig">
<figcaption>Омлет с травами</figcaption>
</figure>
<p>В нашем меню всегда есть свежие, вкусные и полезные блюда.</p>
<p>Убедитесь в этом сами.</p>
<button formaction="tel:+7(123)456-78-90"
data-background-color="#5B97B0"
data-color="white"
data-primary="true">Заказать столик</button>
<div data-block="widget-feedback" data-stick="false">
<div data-block="chat" data-type="whatsapp" data-url="https://whatsapp.com"></div>
<div data-block="chat" data-type="telegram" data-url="http://telegram.com"></div>
<div data-block="chat" data-type="vkontakte" data-url="https://vk.com"></div>
<div data-block="chat" data-type="facebook" data-url="https://facebook.com"></div>
<div data-block="chat" data-type="viber" data-url="https://viber.com"></div>
</div>
<p>Наш адрес: <a href="#">Nullam dolor massa, porta a nulla in, ultricies vehicula arcu.</a></p>
<p>Фотографии — http://unsplash.com</p>
]]>
</turbo:content>
</item>
</channel>
</rss>'
Операция возвращает идентификатор задачи на загрузку RSS-канала в поле task_id
. Его необходимо использовать для проверки статуса загрузки.
Шаг 5. Проверьте статус загрузки
Чтобы проверить статус загрузки RSS-канала, передайте идентификатор задачи в path-параметре task_id
операции GET /v4/user/{user-id}/hosts/{host-id}/turbo/tasks/{task-id}.
Результат загрузки содержит:
-
ссылки, по которым можно посмотреть примеры отображения Турбо‑страниц;
-
информацию об ошибках, если они возникают.
Примечание
Обработка RSS-канала занимает длительное время.
Пример:
curl -X GET \
'https://api.webmaster.yandex.net/v4/user/12345678/hosts/https:example.com:443/turbo/tasks/12345e0-678f-9e' \
-H 'Authorization: OAuth oauth_token'