Соцсети и контакты
Соцсети и организация — два системных набора данных сайта. site.socials — ссылки на профили: из них сайт собирает sameAs организации, ссылка x уходит в twitter:site, фреймы выводят их повторителем. site.organization — кто стоит за сайтом: название, тип, контакты и адрес для узла Organization в разметке. Оба набора читаются GET, пишутся PATCH и умеют проверку без записи; как заполнить их в консоли — Соцсети и контакты.
Во всех примерах API — https://onpress.pro/api/v2, SITE — id сайта (SITE_ID), OP_TOKEN — токен op_XXXX. Права на всех эндпоинтах страницы — администратор сайта. Как выбирается сайт и в какой форме приходят отказы — Доступ и токен.
PATCH /data/site.socials
Ссылки на соцсети сайта; из них сайт собирает sameAs организации, ссылка x идёт в twitter:site. Обзор — Соцсети и контакты. Например, добавить Telegram и проверить без записи:
curl -s -X PATCH "$API/site/$SITE/data/site.socials" \
-H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
-d '{"telegram": "https://t.me/example", "dry_run": true}'
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
{сеть} | string или null | — | ссылка на профиль; "" или null убирает ссылку. Сети: x, facebook, telegram, whatsapp, linkedin, instagram, reddit, gitlab, github, youtube, pinterest |
items | array | — | список {network, link} из ответа чтения: заменяет ссылки целиком |
replace | bool | false (true с items) | убрать все ссылки, которых нет в теле |
dry_run | bool | false | показать changes без записи |
GET /data/site.socials отдаёт только заполненные ссылки: network, label (X, Telegram, GitHub…), link. Ответ записи — applied, changes (field, from, to), items после записи и rebaked: пересобираются фреймы с повторителем по site.socials, кэш страниц сбрасывается.
| Код | Статус | Когда | Что делать |
|---|---|---|---|
nothing_to_change | 400 | в теле нет ни одной сети | пришлите сеть и ссылку |
unknown_network | 400 | сеть вне списка; допустимые — в allowed | возьмите сеть из списка |
invalid_link | 400 | не адрес http(s); сети — в fields | пришлите полную ссылку https://… |
wrong_method_for_source | 405 | PUT вместо PATCH | отправьте PATCH |
system_source_not_deletable | 409 | DELETE | уберите ссылки пустыми значениями |
theme_fields_missing | 409 | у сайта нет этих настроек | — |
internal_unavailable | 502 | сайт не ответил | повторите запрос |
PATCH /data/site.organization
Организация за сайтом, как её видят поисковики. Когда name заполнено, на всех страницах выводится узел Organization из этих полей с sameAs из site.socials; пока name пустое, узел строится из раздела organization SEO-настроек. Например, проверить без записи название и почту:
curl -s -X PATCH "$API/site/$SITE/data/site.organization" \
-H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
-d '{"name": "Example", "email": "hello@example.com", "dry_run": true}'
{
"success": true,
"site_id": "x9HTLHECq",
"dry_run": true,
"applied": false,
"changes": [
{ "field": "name", "from": "", "to": "Example" },
{ "field": "email", "from": "", "to": "hello@example.com" }
],
"items": [{ "name": "", "type": "LocalBusiness", "email": "", "…": "…" }],
"source": "site.organization"
}
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
name | string | — | название; пустое выключает узел из этих полей |
type | string | — | Organization, LocalBusiness, Corporation и другие подтипы |
description, email, phone | string | — | описание и контакты |
street, city, postal, country, region | string | — | адрес |
founding_year | string | — | год основания, четыре цифры |
price_range | string | — | ценовой диапазон |
founders | array | — | список {name, job_title, url} |
items | array | — | ответ чтения: берётся первый элемент |
dry_run | bool | false | показать changes без записи |
"" или null очищает поле. Ответ записи — applied, changes, items и rebaked.
| Код | Статус | Когда | Что делать |
|---|---|---|---|
nothing_to_change | 400 | в теле нет ни одного поля | пришлите хотя бы одно поле |
unknown_field | 400 | поле вне списка; допустимые — в allowed | уберите поле |
invalid_email | 400 | не адрес почты | исправьте адрес |
invalid_founding_year | 400 | не четыре цифры | пришлите год |
invalid_founders | 400 | не список {name, job_title, url} | исправьте список |
wrong_method_for_source | 405 | PUT вместо PATCH | отправьте PATCH |
system_source_not_deletable | 409 | DELETE | очистите поля пустыми значениями |
theme_fields_missing | 409 | у сайта нет этих настроек | — |
internal_unavailable | 502 | сайт не ответил | повторите запрос |