Как собрать виджет отзывов
Виджет показывает отзывы объекта на вашей странице. Управляют показом три инструмента:
| Что нужно | Чем делается |
|---|---|
| Поднять отзыв наверх | Закрепление |
| Убрать отзыв из показа | Скрытие |
| Показать плюсы и минусы отдельными блоками | separate_pos_neg |
Закрепление и скрытие действуют внутри объекта и не меняют собранные данные: в другом объекте тот же отзыв останется как был, на самой площадке не изменится ничего.
Закрепить наверху
Закреплённые отзывы образуют упорядоченный список, максимум 30 на объект.
Добавить в конец – POST, задать порядок целиком – PUT:
# добавить в конец
curl -X POST "https://api.rewio.ru/v2/groups/20/pinned-reviews" \
-H "X-API-Key: hrev_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"review_ids": [143046]}'
# переставить: порядок в запросе становится порядком показа
curl -X PUT "https://api.rewio.ru/v2/groups/20/pinned-reviews" \
-H "X-API-Key: hrev_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"ordered_review_ids": [142391, 143046]}'PUT – замена целиком: отзывы, которых нет в списке, открепляются. Место каждого приходит
в pin_position, считая с нуля.
Скрыть и вернуть
# скрыть
curl -X POST "https://api.rewio.ru/v2/groups/20/hidden-reviews" \
-H "X-API-Key: hrev_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"review_ids": [143046, 142391]}'
# вернуть в ленту
curl -X DELETE "https://api.rewio.ru/v2/groups/20/hidden-reviews" \
-H "X-API-Key: hrev_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"review_ids": [142391]}'Скрытый отзыв пропадает из обычной ленты. Он остаётся доступен
списком скрытых и в обычной ленте с show_hidden=true, там у него
приходит флаг is_hidden. За один запрос – до 200 идентификаторов.
Скрытие снимает закрепление. Снятие скрытия его не возвращает – закрепите заново.
Как собрать страницу
В обычной ленте нет ни закреплённых, ни скрытых: GET /v2/reviews по умолчанию исключает и тех и
других. Поэтому страница собирается двумя запросами, и дублей между ними не бывает – закреплённые
сверху, за ними обычная лента.
import requests
BASE = "https://api.rewio.ru/v2"
HEADERS = {"X-API-Key": "hrev_ВАШ_КЛЮЧ"}
GROUP = 20
pinned = requests.get(f"{BASE}/groups/{GROUP}/pinned-reviews", headers=HEADERS).json()["data"]
feed = requests.get(f"{BASE}/reviews", headers=HEADERS,
params={"group_id": GROUP, "limit": 20}).json()["data"]
for review in pinned + feed: # скрытые не придут ни там, ни там
print(review["rating"], review["author"])Нужны закреплённые прямо в общей ленте – передайте show_pinned=true, и они придут вперемешку
с остальными, с флагом is_pinned.
Ключ API открывает все данные аккаунта, поэтому в браузерный код он не попадает: запрашивайте отзывы со своего бэкенда и отдавайте странице уже готовый ответ. Подробнее – в Доступе.
Плюсы и минусы отдельными блоками
Часть площадок спрашивает у автора достоинства и недостатки по отдельности. С
separate_pos_neg=true они приходят полями positive и negative, и показать их можно двумя
колонками. Подробности и список площадок – на отдельной странице.
Средний балл не зависит от показа
Аналитика считает все собранные отзывы объекта. Скрыли отзыв с единицей – он пропал из показа, но средний балл и распределение оценок не изменились.
Это сделано намеренно: скрытие оформляет показ, а не правит данные. Если рядом с отзывами нужен балл, согласованный с показанными, считайте его сами по выдаче.
В папках работает не всё
Папочная лента применяет скрытие, но не закрепление. В ленте по папке
закреплённый отзыв приходит обычной строкой, а флагов is_pinned и is_hidden там нет.
Поэтому лента по папке из одного объекта может вернуть больше отзывов, чем лента по этому же объекту – ровно на число закреплённых.