💬 Командный WhatsApp-Инбокс на новой ПлатформеЕщё
1msg official logo

WhatsApp Business API для обновления — указать место получения

Этот сценарий отправляет местоположение с помощью sendLocation в течение 24-часового окна обслуживания клиентов.

Обзор сценария

Этот сценарий отправляет местоположение с помощью sendLocation в течение 24 часов обслуживания клиентов. Координаты, название места и адрес помогают покупателю сориентироваться без копирования текста.

Пример шаблона

Точка самовывоза готова. Коснитесь метки на карте ниже, чтобы перейти к ней.

WhatsApp Business API for delivery update — share pickup location

Когда использовать

Используйте этот сценарий, когда заказ переходит в статус готовности к получению, а покупатель ещё не знает точное место выдачи, в то время как сессия в WhatsApp остаётся открытой. Это подходит для электронной коммерции с функцией «клик и забери», где ручной ввод адресов может привести к ошибкам и повторным обращениям в поддержку.

Меньше неверных указаний для забора
sendLocation передаёт широту, долготу, название точки получения и адрес в виде метки на карте, чтобы покупатель добрался до точных координат, а не копировал ошибочно введённый адрес из чата.
Меньше сообщений «где забрать?»
Отправка происходит, когда статус заказа меняется на «готово к самовывозу» в течение открытой 24-часовой сессии, поэтому пин оказывается в той же переписке, где покупатель уже спрашивал о доставке.
Одноразовые карты из чата
Карта с общей геолокацией открывает навигацию в приложении карт покупателя; в тексте сессии сказано нажать на значок карты ниже, а не искать адрес в другом месте.
Без ручного ввода адреса
Ваш сервер загружает координаты, название места и адрес, когда возникает событие заказа, чтобы служба поддержки не повторяла детали забора в свободном тексте.

Как это работает

  1. Отслежено

    Изменение статуса заказа означает, что посылку можно забрать.

    status: "read"

  2. Фиксация события

    Ваш сервер загружает координаты, название места и уличный адрес.

    phone: "+…"

  3. Собрать и отправить

    sendLocation отправляет метку клиенту в активной сессии.

    POST /send_location

  4. Доставлено

    Клиент открывает навигацию по картам из карточки с общим местоположением.

    delivered

WhatsApp Business API for delivery update — share pickup location

Техническая реализация

Предварительные условия

  1. Ключ API 1MSG · Как получить API-ключ
  2. Аккаунт WhatsApp Business · Как подключить WABA
  3. Открыть 24-часовой сеанс · Как работает 24-часовое окно
  4. Получение согласия от клиента · Как управлять согласием клиентов
  5. Вебхук-эндпоинт · Как настроить вебхуки

Примеры кода

#!/usr/bin/env bash
set -euo pipefail

# === Configuration (replace "___" placeholders) ===
API_BASE_URL="https://api.1msg.io"        # production 1MSG API base URL
CHANNEL_ID="___"                           # channel ID from 1MSG dashboard
API_TOKEN="___"                            # channel JWT token (Bearer)



# === Test data ===
TEST_PHONE="___"                 # client phone in international format

PHONE_NORM="$(printf '%s' "$TEST_PHONE" | tr -cd '0-9')"
URL="${API_BASE_URL%/}/${CHANNEL_ID}/sendLocation"

read -r -d '' PAYLOAD <<JSON || true
{
  "phone": "${PHONE_NORM}",
  "lat": "41.40338",
  "lng": "2.17403",
  "name": "Pickup point",
  "address": "Example street 1"
}
JSON

RESPONSE="$(curl -s -w '\n%{http_code}' -X POST "$URL" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -d "$PAYLOAD")"

HTTP_CODE="$(printf '%s' "$RESPONSE" | tail -n1)"
BODY="$(printf '%s' "$RESPONSE" | sed '$d')"

case "$BODY" in
  *'"sent":true'*) ok=1 ;;
  *) ok=0 ;;
esac

if [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 300 ] && [ "$ok" -eq 1 ]; then
  echo "Message sent to client."
else
  echo "$BODY" >&2
  exit 1
fi

Статус ответа и доставки

HTTP 2xx и JSON "sent": true означают, что 1MSG принял сообщение для отправки — это не значит, что оно уже достигло телефона клиента. Сохраните idполе (выглядит как wamid.…), чтобы сопоставить обратные вызовы доставки.

200 OKОтвет
{
  "sent": true,
  "id": "wamid.HBgLMzgwNjM5...",
  "message": "Message accepted for delivery"
}
  • sent

    Принято для отправки — ещё не получено на телефон клиента

  • id

    Храните это. Обратные вызовы доставки и hookInfo привязаны к нему

Доставка приходит позже, в виде отдельного callback. Зарегистрируйте вебхук POST …/webhook, чтобы 1MSG отправлял обновления статуса на ваш HTTPS-эндпоинт в верхнеуровневом hooks[] payload.

200 OKВебхук статуса доставки — данные, которые вы получаете
{
  "hooks": [
    {
      "id": "gBGGeSaGViBfAgnlzOSHEwK9O6F",
      "type": "message",
      "status": "sent",
      "timestamp": "1654864094",
      "recipient_id": "556123122026"
    }
  ]
}
  • status

    sent, delivered, read — или статус отказа, если применимо

  • id

    Связывает callback с idвозвращаемым значением вызова send

  • timestamp

    Строка из секунд Unix

If you would rather not receive callbacks, poll GET {base}/{channel}/hookInfo?messageId=<id> instead. In practice delivery often completes within seconds — but the API contract does not guarantee it, so never block a flow waiting on it.

Типичные ошибки

СтатусОтветПричина
200Message was not sent: empty bodyNo body in the request.
200Message was not sent: provide chatId, phone, bsuid, or usernameNo recipient the channel could resolve.
200wrong fileThe media could not be fetched or uploaded — not a reachable URL, not valid base64.
403access deniedThe token is wrong, or belongs to a different channel than the URL.
200Message was not sent: filenamesendFile called without a filename, so the media has no extension to send.

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Нет — в этой ситуации используется сеансовое сообщение в 24-часовом окне обслуживания.

Связанные

Заказы и доставка
WhatsApp Business API для подтверждения доставки заказа
Сценарий отправляет клиенту персонализированный шаблон WhatsApp, когда его заказ отмечен как доставленный.
Заказы и доставка
WhatsApp Business API для уведомления об отмене заказа
Сценарий отправляет клиенту персонализированный шаблон WhatsApp, когда заказ отменён.
Заказы и доставка
WhatsApp Business API для уведомлений о новом маршруте или поездке
Сценарий отправляет менеджеру или диспетчеру персонализированный шаблон WhatsApp, когда создаётся новый маршрут доставки или рейс.
Заказы и доставка
WhatsApp Business API для подтверждения нового заказа
Сценарий отправляет клиенту персонализированный шаблон WhatsApp сразу после оформления нового заказа.
Заказы и доставка
WhatsApp Business API для уведомления о неудачной попытке доставки
Сценарий отправляет клиенту персонализированный шаблон WhatsApp, если не удалось доставить.
Заказы и доставка
WhatsApp Business API для уведомлений о задержке доставки
Сценарий отправляет клиенту персонализированный шаблон WhatsApp при задержке доставки заказа.
Заказы и доставка
WhatsApp Business API для связи с водителем — отправить контакт
Этот сценарий отправляет карточку контакта WhatsApp с sendContact в 24-часовое окно обслуживания после назначения водителя или курьера на заказ.
Заказы и доставка
WhatsApp Business API для уведомлений о смене статуса
Сценарий отправляет клиенту персонализированный шаблон WhatsApp, когда изменяется статус его заказа, заявки или запроса.

Интегрируйте WhatsApp за часы
без проблем с инфраструктурой