Соцсети и контакты
Соцсети и контакты — это ссылки на профили сайта в соцсетях и данные организации, которая стоит за сайтом: название, почта, телефон, адрес, основатели. Это системные данные: ссылки лежат в /data/site.socials, организация — в /data/site.organization.
Из этих данных сайт сам собирает разметку для поисковиков на всех страницах: организацию с контактами и адресом и список её профилей. AI-агенту не нужно собирать разметку руками: он записывает поля по именам, а подвал может выводить те же ссылки.
Во всех примерах API — https://onpress.pro/api/v2, SITE — id сайта (SITE_ID), OP_TOKEN — токен op_XXXX. Полный перечень полей и ошибок — в справочнике API.
Прочитать
GET /data/site.socials отдаёт заполненные ссылки, по одному элементу на сеть: network — сеть, label — её название, link — адрес профиля. GET /data/site.organization отдаёт один элемент с полями организации. Например, ссылки сайта:
curl -s "$API/site/$SITE/data/site.socials" -H "Authorization: Bearer $OP_TOKEN"
Изменить ссылки
PATCH /data/site.socials меняет только те сети, которые есть в запросе, остальные ссылки остаются. Пустая строка убирает ссылку, а "replace": true убирает все ссылки, которых нет в запросе. Сети называются так: x, facebook, telegram, whatsapp, linkedin, instagram, reddit, gitlab, github, youtube, pinterest. Например, добавить Telegram и GitHub и убрать X:
curl -s -X PATCH "$API/site/$SITE/data/site.socials" \
-H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
-d '{"telegram": "https://example.com/telegram", "github": "https://example.com/github", "x": ""}'
В ответе changes перечисляет, что было и что стало, а items — ссылки после записи. С "dry_run": true ответ покажет те же changes, но ничего не запишет.
Изменить организацию
PATCH /data/site.organization меняет переданные поля организации: name, type, description, email, phone, street, city, postal, country, region, founding_year, founders. Пустая строка очищает поле. Когда name заполнено, сайт выводит организацию для поисковиков из этих полей, а её профили — из site.socials. Например, название, тип, почта и город:
curl -s -X PATCH "$API/site/$SITE/data/site.organization" \
-H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
-d '{"name": "Example", "type": "Organization", "email": "hello@example.com", "city": "Berlin"}'
Пока name пустое, организацию для поисковиков задают SEO-настройки сайта — раздел organization эндпоинта /seo, подробнее на странице SEO.
Вывести в подвале
Ссылки на соцсети выводит системный фрейм socials: по пункту списка на каждую заполненную ссылку. Поставьте его во фрейм подвала:
<!-- frame/socials /-->
Верстку фрейма можно менять. Внутри стоит повторитель по site.socials, у каждой ссылки есть network, label и link. Сеть выходит атрибутом data-network, по нему удобно ставить иконки в CSS. Если фрейма на сайте нет, поставьте его через POST /site/{site_id}/frames/system/socials/install и правьте через PUT /frames/socials. После записи site.socials фреймы с таким повторителем обновляются сами. Как устроен повторитель — на странице Повторитель onpress/repeat.
Вопросы и ответы
Почему новая ссылка не появилась в подвале?
Подвал берёт ссылки не из site.socials, а из своих данных. В подвале нового сайта ссылки и почта лежат в пользовательских данных footer, в поле socials, с теми же полями network, label и link. Поменяйте их через PATCH /data/footer или поставьте в подвал повторитель по site.socials, чтобы подвал и разметка для поисковиков брали ссылки из одного места.
Почему API не принял ссылку?
Ссылка должна быть полным адресом с https:// или http://. На адрес без схемы или с пробелами API отвечает 400 invalid_link и называет сеть в fields.
Какие ещё сети можно указать?
Только сети из списка в разделе «Изменить ссылки». На другую сеть API отвечает 400 unknown_network, а допустимые имена перечисляет в allowed.
Где коды ошибок?
В справочнике API. Ответ с ошибкой сам называет причину.