Старт: сайт с поиском
Для сайта, где человек задаёт фильтры и открывает страницу анкет. Пропуск страницы — не отказ. Если у вас колода по одной анкете — это приложение-листалка.
Ключ API живёт только на сервере.
Что хранить у себя
| Поле | Зачем |
|---|---|
network_id |
ответ PUT /v1/members/{ваш id} |
match_id |
разговор с человеком из сети |
next_after |
если события забираете сами |
| фильтры смотрящего | возраст, цель, язык, рост, радиус — у себя, в каждый запрос ленты |
Фильтры в запрос не записывают анкету. Анкета по-прежнему задаёт, кого человек может видеть. Запрос может только сузить.
Согласие и анкета
Как у листалки: переключатель выключен по умолчанию, PUT при включении и правке, consent.network: false при выключении, DELETE при удалении. Тексты — в Анкеты и согласия.
Возраст в анкете (age_min, age_max) — взаимный диапазон. Фильтр поиска его не расширяет.
Страница поиска
curl "https://api.pereval.dating/v1/members/user-123/feed?limit=20&age_min=28&age_max=35&intent=serious&language=ru" \
-H "Authorization: Bearer $PEREVAL_API_KEY"
| Параметр | Что будет |
|---|---|
age_min, age_max |
Пересечение с диапазоном анкеты. Пустое пересечение — пустая страница и 200, не ошибка. В запросе age_min больше age_max — 422 |
intent |
Одна цель из анкеты смотрящего: serious, casual, friendship, arrangement. Чужая цель — 422 |
language |
Код ISO 639-1, две буквы. Общий язык или согласие обоих на другие языки остаются обязательными |
gender |
Только противоположный пол смотрящего. Свой пол — 422 |
radius_km, height_min, height_max, verified_only, lat, lon |
Как в ленте |
Отметьте на карточке, что анкета из сети «Перевал». Переведённое описание пометьте и дайте оригинал. videos[].poster — кадр ролика: его можно показать и не скачивая файл. Воспроизведение с url по желанию, без звука, пока посетитель не включил звук у всех роликов сразу.
Следующая страница
В ответе есть next_cursor, пока страница может быть не последней. Следующий запрос — те же фильтры и cursor=<next_cursor>. Курсора в ответе нет — страницы кончились. Кривой cursor — 422.
Повтор того же запроса без курсора возвращает тех же людей и не тратит лимит.
Дизлайк на эту схему не нужен. Он прячет человека на 30 дней и нужен только если посетитель явно отказал («не показывать»). Прокрутка и «следующая страница» дизлайком не являются.
Лимит
200 разных людей в сутки (UTC) на одного вашего пользователя, вместе с лентой «Весь мир», если она есть. Сколько новых ещё можно показать — remaining_today. Уже показанные сегодня приходят снова и остаток не уменьшают. На нуле новые люди пропадают, уже показанные сегодня остаются: сетку можно обновить.
Сообщение без взаимного лайка сеть не принимает. Лайк с карточки — POST /v1/likes. Дальше мэтч и переписка, как в листалке.
Готово, когда
- Фильтры на сайте уходят в запрос ленты и не шире анкеты смотрящего.
- Страницы идут по
next_cursor. Повтор страницы не уменьшаетremaining_today. - Прокрутка не шлёт дизлайк. Дизлайк есть только на явном отказе.
- На нуле лимита новые люди не появляются, уже открытые сегодня открываются снова.
- Лайк, мэтч и сообщения работают. Без мэтча написать нельзя.
- На карточке видно приложение человека. Перевод помечен.
Свои анкеты в эту ленту не придут: своих вы показываете своим поиском. Перед боем — тестовый контур.