API WeChat Official Accounts Ответы на комментарии
В часы пиковой нагрузки может быть временно недоступна
В часы пиковой нагрузки эта возможность может быть временно недоступна; повторите попытку позже. Неудачные вызовы не оплачиваются.
Состояние API
- Состояние за 24 ч
- Норма
- Среднее время за 24 ч
- —
- Стабильно / норма
- Доступно
- Ограничено
- Почти недоступно
Последние 24 часа
Последние 30 дней
Получите ответы на один комментарий к статье официального аккаунта WeChat. Для каждого ответа возвращаются текст, автор ответа, число лайков, время и отображаемые страна, провинция и город. Используйте comment_id из комментариев к статье вместе со ссылкой на ту же статью. Ветки других комментариев не восстанавливаются.
WeChat Official Account Comment replies получает ответы на один комментарий к статье по url статьи и comment_id комментария. Для каждого ответа возвращаются полный текст, никнейм и аватар ответившего пользователя, число лайков, время публикации, а также страна, провинция и город, отображаемые вместе с ответом. С помощью этой возможности можно проследить ветку обсуждения до конца: узнать, кто ответил на жалобу, как читатели спорили между собой или какие уточняющие вопросы вызвало заявление.
ID комментария берётся из возможности WeChat Article comments. Его можно использовать только вместе со ссылкой на статью, из которой он получен. Значения местоположения передаются в том виде, в каком их отдаёт платформа: в country встречаются и полные названия, и коды ISO, а в city сохраняется исходная формулировка платформы, поэтому нормализуйте поля country и city, прежде чем группировать ответы по местоположению.
Цена: $6.76 за 1 000 запросов ($0.006764 за вызов). Неудачные вызовы и пустые результаты не оплачиваются. Синхронный режим. Для долгих задач добавьте в тело запроса "mode": "async", получите job_id и опрашивайте статус.
Промпт для ИИ
Помогите мне написать скрипт для сбора данных через эндпоинт EveryInfra WeChat Official Accounts Ответы на комментарии (wechat_oa/comment_replies).
Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: wechat_oa и action: comment_replies, а параметры передайте в params.
- Обязательные параметры:
- url: Ссылка mp.weixin.qq.com на саму статью для article_comments, comment_replies, article_metrics и article_detail: откройте статью и скопируйте её URL (короткую ссылку вида /s/<id> или ссылку с параметрами __biz, mid, idx и…
- comment_id: ID целевого комментария для comment_replies. Берётся из ответа article_comments для той же статьи. Указывается вместе с URL соответствующей статьи; это не ID статьи.
- Необязательные параметры:
- content_id: Синоним comment_id для совместимости в действии comment_replies. Если указаны оба параметра, приоритет у comment_id.
- limit: Максимальное число записей в этом вызове, целое число не меньше 1. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей.
- Возвращает список записей. Основные поля каждой записи: id, text, author_name, author_avatar_url, like_count, posted_at, country, province, city.
- Пример тела запроса:
{
"platform": "wechat_oa",
"action": "comment_replies",
"params": {
"url": "https://mp.weixin.qq.com/s?__biz=MzA4MTg0MjA5OQ==&mid=2655362972&idx=1&sn=b56fabd8e4c53259498100f05f20dbb0",
"comment_id": "11658531443289621226"
}
}
- Цена: $6.76 за 1 000 запросов; неудачные и пустые результаты не оплачиваются.
- Для десятков или сотен целей добавьте в тело запроса "mode": "async": вы сразу получите job_id и сможете опрашивать GET https://api.everyinfra.com/api/v1/jobs/{job_id}, чтобы получить результат.
- При ответе 422 исправьте запрос, используя предложенные в ошибке имена параметров и допустимые значения; при ответе 429 или 503 подождите указанное в Retry-After время и повторите попытку.
Прежде чем писать код, спросите меня, какие цели мне нужны, сколько их будет, какие поля мне нужны и в каком формате вывести результат; затем согласуйте со мной план и примерную стоимость.Параметры запроса
| Имя | Расположение | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|---|
Authorization | header | string | Да | - | Укажите Bearer, а после него — ваш API-ключ. Создайте ключ в консоли; никогда не указывайте его в URL и не храните в репозитории кода. |
platform | body | string | Да | wechat_oa | Идентификатор платформы, фиксированное значение. |
action | body | string | Да | comment_replies | Идентификатор возможности, фиксированное значение. |
url | body.params | string | Да | - | Ссылка mp.weixin.qq.com на саму статью для article_comments, comment_replies, article_metrics и article_detail: откройте статью и скопируйте её URL (короткую ссылку вида /s/<id> или ссылку с параметрами __biz, mid, idx и sn). Временные ссылки, скопированные из результатов поиска (с signature/timestamp), могут не читаться; в таком случае вызов возвращает код 422 до списания средств. Действия на уровне аккаунта используют этот параметр только как резервный источник с самым низким приоритетом при определении целевого аккаунта. |
comment_id | body.params | string | Да | - | ID целевого комментария для comment_replies. Берётся из ответа article_comments для той же статьи. Указывается вместе с URL соответствующей статьи; это не ID статьи. |
content_id | body.params | string | Нет | - | Синоним comment_id для совместимости в действии comment_replies. Если указаны оба параметра, приоритет у comment_id. |
limit | body.params | integer (1–) | Нет | - | Максимальное число записей в этом вызове, целое число не меньше 1. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. |
Примеры кода
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "wechat_oa",
"action": "comment_replies",
"params": {
"url": "https://mp.weixin.qq.com/s?__biz=MzA4MTg0MjA5OQ==&mid=2655362972&idx=1&sn=b56fabd8e4c53259498100f05f20dbb0",
"comment_id": "11658531443289621226"
}
}'Спецификация OpenAPI (JSON)Примеры читают ключ из переменной окружения EVERYINFRA_API_KEY; скопированный код никогда не содержит ваш ключ.
Пример ответа
Для этих параметров пока нет примера ответа. Здесь показаны структура ответа и поля из описания API, а … служит заполнителем; это не результат реального вызова.
{
"id": "req_…",
"platform": "wechat_oa",
"action": "comment_replies",
"results": [
{
"id": …,
"text": …,
"author_name": …,
"author_avatar_url": …,
"like_count": …,
"posted_at": …,
"country": …,
"province": …,
"city": …,
"platform": …
}
],
"count": …,
"billing": {
"charged": …,
"charged_usd": …,
"balance_after_usd": …,
…
},
"quota": { … }
}Поля ответа
Бизнес-данные находятся в results. В таблице перечислены поля, которые может содержать запись; значения, которые платформа не показывает, никогда не выдумываются.
| Поле | Значение |
|---|---|
id | Уникальный ID записи на платформе. Уникален только в пределах одной платформы; на разных платформах ID могут повторяться. |
text | Основной текст без HTML возвращается полностью и никогда не обрезается (на нескольких платформах результаты списковых запросов содержат только фрагмент; это указано в примечаниях к полям платформы). |
author_name | Отображаемое имя автора. |
author_avatar_url | Трактуется так же, как на самой платформе |
like_count | Лайки. null означает, что платформа или эта возможность не раскрывает значение; это не 0. |
posted_at | Время публикации в ISO 8601, UTC (например, 2026-08-07T12:34:56+00:00). Нестандартные строки платформы передаются как есть, поэтому учитывайте это при разборе. null означает, что платформа его не раскрывает. |
country | Страна или регион: полное название либо код ISO в зависимости от платформы. Значение передаётся без нормализации. |
province | Трактуется так же, как на самой платформе |
city | Название города на языке платформы в исходном виде. |
platform | Идентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok). |
FAQ
Где взять comment_id?
Сначала вызовите WeChat Article comments для той же статьи. У каждой записи комментария есть id; передайте это значение как comment_id вместе с тем же самым url статьи. Раскрывать стоит записи, у которых есть ответы. ID статьи или ID комментария из другой статьи не соответствует ссылке и не сработает.
Передавать comment_id числом или строкой?
Строкой. ID комментариев длинные, как 20-значное значение в примере на этой странице, а многие JSON-парсеры и JavaScript округляют такие большие целые числа и незаметно превращают один ID в другой. Храните и передавайте их везде как текст.
Что такое content_id?
Устаревший псевдоним comment_id, который по-прежнему принимается, чтобы существующие интеграции продолжали работать. Если в запросе есть оба параметра, приоритет у comment_id, поэтому в новом коде передавайте только comment_id, без content_id.
Ошибки и оплата
- 401
- Ключ отсутствует или недействителен.
- 402
- Недостаточно средств на балансе. Сначала пополните баланс.
- 422
- Недопустимое имя или значение параметра. Исправьте запрос по подсказкам в сообщении об ошибке. Без списания.
- 429
- Достигнут лимит запросов в минуту. Подождите указанное в Retry-After время, затем повторите попытку.
- 503
- Не удалось выполнить. Зарезервированная сумма возвращается на баланс. Если результат неизвестен, проверьте его перед повторной попыткой.
- 200 (пусто)
- Нет данных. Без списания.
Официальные источники
Используются только для проверки объектов и терминов. Они не означают, что платформа разрешила или одобрила работу EveryInfra.
- Официальные аккаунты WeChat: существующие ответы и операции управления комментариями ↗
WeChat выделяет просмотр комментариев, публикацию ответов, удаление ответов и управление избранными комментариями в отдельные операции. Эндпоинт `comment_replies` здесь только читает существующие ответы. Наличие слова replies в его названии само по себе не даёт возможности публиковать или удалять ответы либо управлять комментариями.
Проверено 2026-09-04