Друзья
Раздел «Друзья» — заявки в друзья, список друзей, статус дружбы с конкретным пользователем и блокировка пользователей. У ботов аналога этого раздела нет — дружба существует только между обычными пользователями.
Все запросы этого раздела требуют заголовок Authorization: Bearer <accessToken>.
Объекты
FriendshipStatus
| Значение | Описание |
|---|---|
UNKNOWN | Стороны никак не связаны. |
PENDING_OUTGOING | Текущий пользователь отправил заявку и ждёт ответа. |
PENDING_INCOMING | Текущему пользователю пришла заявка, ожидающая ответа. |
ACCEPTED | Заявка принята — стороны друзья. |
DECLINED | Заявка отклонена получателем. |
CANCELLED | Заявка отозвана отправителем до ответа. |
REMOVED | Дружба разорвана одной из сторон после ACCEPTED. |
BLOCKED | Один из пользователей заблокировал другого. |
Friend
| Поле | Тип | Описание |
|---|---|---|
id | string | Идентификатор записи о дружбе. |
otherUserId | string | Id друга. |
otherUsername | string | Username друга. |
otherDisplayName | string | Отображаемое имя друга. |
otherAvatarUrl | string | URL аватара друга. |
status | FriendshipStatus | Текущий статус — для списка друзей всегда ACCEPTED. |
confirmedAt | string | Когда заявка была принята (ISO8601). |
FriendRequest
| Поле | Тип | Описание |
|---|---|---|
id | string | Идентификатор заявки. |
otherUserId | string | Id второй стороны заявки. |
otherUsername | string | Username второй стороны. |
otherDisplayName | string | Отображаемое имя второй стороны. |
otherAvatarUrl | string | URL аватара второй стороны. |
status | FriendshipStatus | Статус заявки (PENDING_OUTGOING или PENDING_INCOMING в зависимости от эндпоинта). |
message | string | Сопроводительное сообщение, приложенное к заявке. |
createdAt | string | Когда заявка отправлена (ISO8601). |
Объект ошибки
При любой ошибке вместо 200 OK возвращается default-ответ:
| Поле | Тип | Описание |
|---|---|---|
code | integer | Числовой код ошибки (google.rpc.Code). |
message | string | Человекочитаемое описание ошибки. |
details | array | Дополнительные структурированные детали ошибки (google.protobuf.Any); в большинстве случаев пуст. |
Заявки в друзья
Отправить заявку
/v1/friends/requestsОтправляет заявку в друзья пользователю по его username.
Тело запроса
| Поле | Тип | Описание |
|---|---|---|
username | string | Username пользователя, которому отправляется заявка. |
message? | string | Необязательное сопроводительное сообщение. |
Ответ 200 OK
Объект FriendRequest со статусом PENDING_OUTGOING.
Ответ default (ошибка)
Стандартный объект ошибки — например, если пользователь с таким username не
найден, заявка уже отправлена, стороны уже друзья, или получатель заблокировал отправителя.
Принять заявку
/v1/friends/requests/{friendId}:acceptПринимает входящую заявку в друзья.
Параметры пути
| Поле | Тип | Описание |
|---|---|---|
friendId | string | Id пользователя, чью заявку нужно принять. |
Ответ 200 OK
Объект Friend со статусом ACCEPTED.
Ответ default (ошибка)
Стандартный объект ошибки.
Отклонить заявку
/v1/friends/requests/{friendId}:declineОтклоняет входящую заявку в друзья.
Параметры пути
| Поле | Тип | Описание |
|---|---|---|
friendId | string | Id пользователя, чью заявку нужно отклонить. |
Ответ 200 OK
Пустой объект {}.
Ответ default (ошибка)
Стандартный объект ошибки.
Отозвать заявку
/v1/friends/requests/{friendId}:cancelОтзывает ранее отправленную исходящую заявку.
Параметры пути
| Поле | Тип | Описание |
|---|---|---|
friendId | string | Id пользователя, которому была отправлена заявка. |
Ответ 200 OK
Пустой объект {}.
Ответ default (ошибка)
Стандартный объект ошибки.
Список входящих заявок
/v1/friends/requests/incomingQuery-параметры
| Поле | Тип | Описание |
|---|---|---|
limit? | integer | Сколько заявок вернуть за один запрос. |
beforeId? | string | Id заявки для пагинации «назад по списку». |
Ответ 200 OK
| Поле | Тип | Описание |
|---|---|---|
requests | array | Список FriendRequest со статусом PENDING_INCOMING. |
hasMore | boolean | Есть ли ещё заявки для следующей страницы. |
Ответ default (ошибка)
Стандартный объект ошибки.
Список исходящих заявок
/v1/friends/requests/outgoingТе же параметры и форма ответа, что у «Список входящих заявок», но
requests содержит заявки со статусом PENDING_OUTGOING.
Друзья
Список друзей
/v1/friendsQuery-параметры
| Поле | Тип | Описание |
|---|---|---|
limit? | integer | Сколько записей вернуть за один запрос. |
beforeId? | string | Id записи для пагинации «назад по списку». |
Ответ 200 OK
| Поле | Тип | Описание |
|---|---|---|
friends | array | Список объектов Friend. |
hasMore | boolean | Есть ли ещё записи для следующей страницы. |
Ответ default (ошибка)
Стандартный объект ошибки.
Удалить из друзей
/v1/friends/{friendId}:removeРазрывает дружбу с пользователем (переводит запись в статус REMOVED).
Параметры пути
| Поле | Тип | Описание |
|---|---|---|
friendId | string | Id пользователя, которого нужно удалить из друзей. |
Ответ 200 OK
Пустой объект {}.
Ответ default (ошибка)
Стандартный объект ошибки.
Статус дружбы с пользователем
/v1/friends/status/{userId}Возвращает текущий статус отношений текущего пользователя с указанным пользователем — удобно вызывать перед показом кнопки «Добавить в друзья» / «Отправить сообщение» и т.п. в профиле.
Параметры пути
| Поле | Тип | Описание |
|---|---|---|
userId | string | Id пользователя, чей статус запрашивается. |
Ответ 200 OK
| Поле | Тип | Описание |
|---|---|---|
status | FriendshipStatus | Текущий статус отношений. |
friendId | string | Id соответствующей записи (заявки или дружбы), если она существует. |
Ответ default (ошибка)
Стандартный объект ошибки.
Блокировки
Заблокировать пользователя
/v1/friends/blockedБлокирует пользователя по username — заблокированный не может отправлять заявки в друзья и
сообщения текущему пользователю. Если между пользователями была дружба или активная заявка, она
переводится в статус BLOCKED.
Тело запроса
| Поле | Тип | Описание |
|---|---|---|
username | string | Username пользователя, которого нужно заблокировать. |
reason? | string | Необязательная причина блокировки. |
Ответ 200 OK
Пустой объект {}.
Ответ default (ошибка)
Стандартный объект ошибки.
Список заблокированных
/v1/friends/blockedQuery-параметры
| Поле | Тип | Описание |
|---|---|---|
limit? | integer | Сколько записей вернуть за один запрос. |
beforeId? | string | Id записи для пагинации «назад по списку». |
Ответ 200 OK
| Поле | Тип | Описание |
|---|---|---|
users | array | Список объектов BlockedUser: userId, username, createdAt. |
hasMore | boolean | Есть ли ещё записи для следующей страницы. |
Ответ default (ошибка)
Стандартный объект ошибки.
Разблокировать пользователя
/v1/friends/blocked/{userId}:unblockПараметры пути
| Поле | Тип | Описание |
|---|---|---|
userId | string | Id пользователя, которого нужно разблокировать. |
Ответ 200 OK
Пустой объект {}.
Ответ default (ошибка)
Стандартный объект ошибки.