# Wiadomości tekstowe WhatsApp

Zwykły tekst to najprostszy wariant treści dowolnej: sama treść bez załącznika i opcjonalny podgląd pierwszego linku w niej zawartego.

## Wyślij wiadomość tekstową

Ustaw `text.body`:

**TypeScript**

```typescript
const msg = await bird.whatsapp.send({
  to: "+16505551234",
  from: "+13124495648",
  text: { body: "Your driver is 2 minutes away." },
});
console.log(msg.id, msg.status);
```

Examples: [TypeScript](/pl-pl/dokumentacja/guides/whatsapp/message-types/plain-text.ts.md) · [Python](/pl-pl/dokumentacja/guides/whatsapp/message-types/plain-text.py.md) · [Go](/pl-pl/dokumentacja/guides/whatsapp/message-types/plain-text.go.md) · [PHP](/pl-pl/dokumentacja/guides/whatsapp/message-types/plain-text.php.md) · [CLI](/pl-pl/dokumentacja/guides/whatsapp/message-types/plain-text.cli.md) · [MCP](/pl-pl/dokumentacja/guides/whatsapp/message-types/plain-text.mcp.md) · [cURL](/pl-pl/dokumentacja/guides/whatsapp/message-types/plain-text.curl.md)

Pełna struktura dodaje `preview_url` oraz pola dostępne w każdym wysyłaniu treści dowolnej:

```json
{
  "to": "+16505551234",
  "from": "+13124495648",
  "text": {
    "body": "Your order shipped: https://example.com/track/A1B2C3",
    "preview_url": true
  },
  "in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
  "tags": [{ "name": "category", "value": "shipping" }],
  "metadata": { "order_id": "A1B2C3" }
}
```

`from` jest wymagane w każdej wiadomości serwisowej: numer należący do Twojego obszaru roboczego, a nie zarządzany przez Bird. `in_reply_to_message_id` cytuje wcześniejszą wiadomość w tej samej konwersacji; zobacz [Cytowanie wiadomości](/docs/guides/whatsapp/sending-whatsapp#quoting-a-message), aby dowiedzieć się, do czego się odnosi i co może pominąć.

## Limity

| Pole          | Ograniczenie               | Egzekwowane przez            |
| ------------- | -------------------------- | ---------------------------- |
| `body`        | Od 1 do 4096 znaków        | Bird, przy przyjęciu (`422`) |
| `preview_url` | boolean, domyślnie `false` | Nie dotyczy, informacyjne    |

`body` zawierające same białe znaki przechodzi własną walidację schematu `minLength: 1`, ale Bird i tak je przechwytuje: `body`, które po przycięciu jest puste, zostaje odrzucone z `422` [`E15015`](/docs/api/errors/E15015) `WhatsAppContentRequired`. Treść powyżej 4096 znaków jest odrzucana ze zwykłym `422` i bez dedykowanego kodu katalogowego.

## Odczyt przychodzącej wiadomości tekstowej

Przychodząca wiadomość tekstowa zawiera to samo pole `text.body` i nic więcej w tym wariancie. Zobacz [Odbieranie wiadomości tekstowych WhatsApp](/docs/guides/whatsapp/receiving-whatsapp/plain-text), aby poznać pełny odczyt przychodzący, payload `whatsapp.received` i na co zwrócić uwagę.

## Limity i przypadki brzegowe

- **Okno obsługi klienta musi być otwarte.** Zwykły tekst to wiadomość serwisowa, dostarczalna tylko w otwartym oknie; zobacz [okno obsługi klienta](/docs/guides/whatsapp/message-types#the-customer-service-window) w hubie.
- **`preview_url` dotyczy tylko pierwszego linku i tylko tego, co renderuje klient odbiorcy.** Domyślna wartość to `false`. Ustaw ją, aby wyświetlić podgląd pierwszego URL w `body`; kolejny URL w tej samej treści nigdy nie otrzyma podglądu. Jeśli klient odbiorcy nie może pobrać podglądu dla tego linku, po cichu wyświetla zwykły klikalny link. Nic w odczycie nie informuje, czy podgląd rzeczywiście się wyrenderował.
- **Markdown w WhatsApp to renderowanie `body` przez klienta odbiorcy, a nie część kontraktu API.** Bird przekazuje `body` bez zmian; nie waliduje, nie usuwa ani nie koduje `*bold*`, `_italic_`, `~strikethrough~` ani potrójnych backticków monospace. To, czy te znaczniki się wyrenderują, zależy wyłącznie od klienta, który otworzy wiadomość.
- **Przychodzące `body` nie musi być niepuste, mimo tego, co mówi schemat odczytu.** Meta może zgłosić przychodzącą wiadomość jako `"text": {}` lub z pustym `body`, a Bird zapisuje ją dosłownie, zamiast tworzyć zastępczy tekst. To znana, otwarta luka: nie pisz konsumenta, który ufa `required: body` schematu w tym miejscu.

## Następne kroki

- [Wiadomości serwisowe WhatsApp](/docs/guides/whatsapp/message-types): okno obsługi klienta i model wspólny dla wszystkich wiadomości serwisowych
- [Wysyłanie wiadomości WhatsApp](/docs/guides/whatsapp/sending-whatsapp): koperta żądania, model `202` i bezpieczne ponawianie
- [Wiadomości interaktywne](/docs/guides/whatsapp/message-types/interactive): gdy chcesz dotknięcia zamiast wpisanej odpowiedzi

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/products/whatsapp) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
