Старт: приложение-листалка
Для приложения, где человек открывает одну анкету, лайкает или пропускает, и так до конца колоды. Если у вас сайт с фильтрами и страницами — это другой старт: сайт с поиском.
Ключ API живёт только на сервере. Приложение говорит с вашим сервером, сервер — с https://api.pereval.dating.
Что хранить у себя
| Поле | Зачем |
|---|---|
network_id |
пришёл в ответ на PUT /v1/members/{ваш id} |
match_id |
разговор с человеком из сети, из match.created |
next_after |
если забираете события сами, а не вебхуком |
external_id в запросах — ваш id пользователя, строка.
Согласие и анкета
Переключатель «Показывать меня в сети Перевал» выключен по умолчанию, рядом ссылка на pereval.dating. Тексты согласий — в разделе Анкеты и согласия. Включил или изменил анкету — PUT /v1/members/{ваш id}. Выключил — тот же PUT с consent.network: false. Удалил данные из сети или аккаунт — DELETE /v1/members/{ваш id}.
Пока человек не включил участие, ленту сети ему не запрашивайте.
Колода
curl "https://api.pereval.dating/v1/members/user-123/feed?limit=20" \
-H "Authorization: Bearer $PEREVAL_API_KEY"
Отметьте на карточке, что анкета из сети «Перевал». Если bio_translated — пометка «переведено ИИ» и оригинал из bio_original. Если в карточке есть videos, ролик играет с url, до этого виден poster. Старт без звука; включать звук у всех роликов сразу — один переключатель, не у каждого ролика. Площадка без видео показывает poster как ещё одно фото.
Человек пропустил анкету без лайка — это дизлайк, она скроется на 30 дней:
curl -X POST https://api.pereval.dating/v1/dislikes \
-H "Authorization: Bearer $PEREVAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"from": "user-123", "to": "<network_id>"}'
Следующий запрос ленты без курсора вернёт тех же людей, кого ещё не лайкнули и не дизлайкнули. Чтобы взять следующую пачку, не помечая пропуск, передайте cursor из next_cursor. Для листалки обычный путь — дизлайк на пропуск.
В сутки один человек видит не больше 200 новых людей из сети. Остаток — remaining_today. Повторный показ тех же анкет остаток не уменьшает.
Лайк и переписка
POST /v1/likes с from = ваш id и to = network_id. Ответ matched: true — сразу есть match_id. Иначе мэтч придёт событием match.created, когда лайкнут в ответ.
Сообщение — POST /v1/matches/{match_id}/messages. События (like.received, match.created, message.created) приходят вебхуком или их забирают GET /v1/events. Подпись и повтор — в разделе События и вебхуки.
Писать без взаимного лайка нельзя.
Готово, когда
- Ключ только на сервере, участие выключено по умолчанию.
- Анкета уходит в сеть при включении и при правке, скрывается при выключении, стирается при удалении.
- В колоде есть люди из других приложений, на карточке видно, откуда они.
- Пропуск — дизлайк, лайк —
POST /v1/likes, мэтч открывает переписку. - События не двоятся: вебхук сверяет подпись по сырому телу, либо хранится
next_after. - Переведённое описание помечено, оригинал можно открыть.
Дальше по желанию: суперлайк, «Весь мир», проверка фото. Это уже лента и мэтчи и анкеты. Перед боевым ключом — тестовый контур.