Наша собственная статистика посещений включена всегда. Google Analytics помогает нам понять, как пользуются нашими публичными страницами (но не вашим рабочим пространством после входа), и включается только с вашего разрешения. См. нашу политику конфиденциальности.

API WeChat Official Accounts Ответы на комментарии

В часы пиковой нагрузки может быть временно недоступна

В часы пиковой нагрузки эта возможность может быть временно недоступна; повторите попытку позже. Неудачные вызовы не оплачиваются.

POST

Состояние API

Состояние за 24 ч
Норма
Среднее время за 24 ч
—
  • Стабильно / норма
  • Доступно
  • Ограничено
  • Почти недоступно
Норма

Получите ответы на один комментарий к статье официального аккаунта 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 время и повторите попытку.

Прежде чем писать код, спросите меня, какие цели мне нужны, сколько их будет, какие поля мне нужны и в каком формате вывести результат; затем согласуйте со мной план и примерную стоимость.

Параметры запроса

ИмяРасположениеТипОбязательныйПо умолчаниюОписание
AuthorizationheaderstringДа-Укажите Bearer, а после него — ваш API-ключ. Создайте ключ в консоли; никогда не указывайте его в URL и не храните в репозитории кода.
platformbodystringДаwechat_oaИдентификатор платформы, фиксированное значение.
actionbodystringДаcomment_repliesИдентификатор возможности, фиксированное значение.
urlbody.paramsstringДа-Ссылка mp.weixin.qq.com на саму статью для article_comments, comment_replies, article_metrics и article_detail: откройте статью и скопируйте её URL (короткую ссылку вида /s/<id> или ссылку с параметрами __biz, mid, idx и sn). Временные ссылки, скопированные из результатов поиска (с signature/timestamp), могут не читаться; в таком случае вызов возвращает код 422 до списания средств. Действия на уровне аккаунта используют этот параметр только как резервный источник с самым низким приоритетом при определении целевого аккаунта.
comment_idbody.paramsstringДа-ID целевого комментария для comment_replies. Берётся из ответа article_comments для той же статьи. Указывается вместе с URL соответствующей статьи; это не ID статьи.
content_idbody.paramsstringНет-Синоним comment_id для совместимости в действии comment_replies. Если указаны оба параметра, приоритет у comment_id.
limitbody.paramsinteger (1–)Нет-Максимальное число записей в этом вызове, целое число не меньше 1. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей.

Примеры кода

bash
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, а … служит заполнителем; это не результат реального вызова.

json
{
  "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.