# WhatsApp API

import { Badge } from '@astrojs/starlight/components';

<Aside type="caution" title="/createWhatsAppMessage ถูกเลิกใช้งานแล้ว">
การผสานรวมใหม่ควรใช้ [Messaging API v2](/th/developer/api-reference/messaging-api-v2/) — ส่ง `platforms: ["WHATS_APP"]` ไปยัง `Notify` และใช้บล็อก `whatsapp` ภายใน `payload.content.localized_content` ดู [คู่มือการย้าย](/th/developer/api-reference/messaging-api-v2/migration-from-v1/#from-createwhatsappmessage)
</Aside>

<Aside type="note">
ก่อนส่งข้อความ WhatsApp ตรวจสอบให้แน่ใจว่าแพลตฟอร์ม WhatsApp ได้รับการกำหนดค่าอย่างถูกต้อง [เรียนรู้เพิ่มเติม](/th/product/first-steps/start-with-your-project/configure-platforms/whatsapp-configuration/)
</Aside>

## createWhatsAppMessage <Badge text="เลิกใช้งานแล้ว" variant="caution" size="small" />

ใช้สำหรับส่งข้อความ WhatsApp ไปยังผู้ใช้

`POST` `https://api.pushwoosh.com/json/1.3/createWhatsAppMessage`

### Request body

| ชื่อ  <div style="width:180px"></div>   | จำเป็น <div style="width:100px"></div> | ประเภท | คำอธิบาย |
| :---- | :---- | :---- | :---- |
| auth\* | ใช่ | string | [API access token](/th/developer/api-reference/api-identifiers/#api-access-token) จาก Pushwoosh Control Panel |
| application\* | ใช่ | string | [รหัสแอปพลิเคชัน Pushwoosh](/th/developer/api-reference/api-identifiers/#application-code) |
| notifications\* | ใช่ | array | การตั้งค่าเนื้อหา อาร์เรย์ JSON ของพารามิเตอร์ข้อความ ดูรายละเอียดด้านล่าง |

### พารามิเตอร์การแจ้งเตือน

| ชื่อ   <div style="width:150px"></div>     | จำเป็น                                  | ประเภท    | คำอธิบาย                                                                                                                                                                                                                                                                                  |
|:----------------------|:------------------------------------------|:--------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| send_date*            | ใช่                                       | string  | วันที่และเวลาที่จะส่งการแจ้งเตือน ใช้รูปแบบ `YYYY-MM-DD HH:mm` หรือ `'now'` เพื่อส่งทันที                                                                                                                                                                                        |
| content               | จำเป็นหากไม่ได้ระบุ `content_id` | string  | เนื้อหาข้อความของ WhatsApp                                                                                                                                                                                                                                                        |
| content_id            | จำเป็นหากไม่ได้ระบุ `content`    | string  | ตัวระบุสำหรับเทมเพลต WhatsApp ที่ได้รับการอนุมัติล่วงหน้าจากบัญชี Meta ของคุณ                                                                                                                                                                                                                      |
| devices*              | ใช่                                       | array   | หมายเลขโทรศัพท์ของลูกค้า (ต้องเชื่อมโยงกับ [User ID](/th/developer/api-reference/api-identifiers/#user-id) โดยใช้ [`/registerDevice`](/th/developer/api-reference/device-api#registerdevice) และระบุในพารามิเตอร์ `hwid` หรือใช้ `use_auto_registration`) สามารถระบุได้เพียงหมายเลขเดียวที่นี่ |
| use_auto_registration | ไม่                                        | boolean | หากตั้งค่าเป็น `true` หมายเลขโทรศัพท์ที่ระบุในพารามิเตอร์ `devices` จะถูกลงทะเบียนโดยอัตโนมัติ                                                                                                                                                                                    |
| content_variables     | ไม่                                        | object  | ตัวแปรเนื้อหาเพื่อปรับแต่งเนื้อหาข้อความ ตัวยึดตำแหน่งแต่ละตัวจะถูกแทนที่ด้วยค่าไดนามิกที่สอดคล้องกัน                                                                           |
| button_url_variables  | ไม่                                        | object     | ตัวแปร URL แบบไดนามิกสำหรับปุ่ม แต่ละคีย์แสดงถึงดัชนีของปุ่ม และค่าของมันคือตัวแปรไดนามิกที่จะแทนที่ใน URL ของปุ่ม **หมายเหตุ**: การจัดทำดัชนีปุ่มเริ่มต้นที่ 0 โดยปุ่มแรกคือ 0 ปุ่มที่สองคือ 1 และต่อไปเรื่อยๆ                                                                                              |
| header_variables      | ไม่                                        | object  | ตัวแปรสำหรับส่วนหัวในข้อความเทมเพลต WhatsApp ระบุ `type` (เช่น `text`, `image`, `video`, `document`) และค่าที่สอดคล้องกัน **ตัวอย่าง**: `"header_variables": {"image": "https://image-url.png"}`                                                                   |
| preset                | ไม่                                        | string  | รหัส Preset ของ WhatsApp จาก Control Panel ของคุณ                                                                                |
| language              | ไม่                                        | string  | โลแคลภาษาของเทมเพลต WhatsApp (ต้องตรงกับโลแคลในตัวแก้ไขเทมเพลต Meta WhatsApp) ค่าเริ่มต้น: `"en_US"` ตัวอย่าง: `"en_GB"`                                                                                                            |

<Aside type="caution" title="สำคัญ">
****
ปัจจุบัน ข้อความ WhatsApp แต่ละข้อความจะต้องส่งในคำขอแยกต่างหากสำหรับลูกค้าแต่ละราย
</Aside>

### ตัวอย่างคำขอ

```json
{
  "request": {
    "application": "12XXX-67XXX",           // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
    "auth": "yxoPUlwqm…………pIyEX4H",         // จำเป็น API access token จาก Pushwoosh Control Panel
    "notifications": [{
      "send_date": "now",                   // จำเป็น YYYY-MM-DD HH:mm หรือ "now"
      "content": "Hello! {{1}}",            // จำเป็นหากไม่ได้ระบุ content_id ข้อความ
      "content_id": "hello_world",          // จำเป็นหากไม่ได้ระบุ content ตัวระบุเทมเพลต WhatsApp
      "devices": ["whatsapp:+1234567890"],  // จำเป็น หมายเลขโทรศัพท์ WhatsApp ของลูกค้า (ต้องเชื่อมโยง
                                            //           กับ UserId โดยใช้ /registerDevice และระบุใน
                                            //           พารามิเตอร์ "hwid" หรือใช้ "use_auto_registration")
                                            //           สามารถระบุหมายเลข WhatsApp ได้เพียงหมายเลขเดียวที่นี่
      "preset": "XXXXX-XXXXX",              // ไม่จำเป็น รหัส Preset ของ WhatsApp จาก Control Panel ของคุณ
      "content_variables": {                // ไม่จำเป็น ตัวแปรเนื้อหาเพื่อปรับแต่งเนื้อหาข้อความ
        "1": "John"
      },
      "header_variables": {                 // ไม่จำเป็น ตัวแปรสำหรับส่วนหัวของข้อความ WhatsApp
        "image": "https://image-url.png"
      },
      "language": "en_GB",                  // ไม่จำเป็น โลแคลภาษาสำหรับเทมเพลต WhatsApp (ต้องตรงกับโลแคลในตัวแก้ไขเทมเพลต Meta WhatsApp) ค่าเริ่มต้น: "en_US"
      "use_auto_registration": true         // ไม่จำเป็น ลงทะเบียนหมายเลข WhatsApp ที่ระบุโดยอัตโนมัติ
                                            //           ในพารามิเตอร์ "devices"
    }]
  }
}
```

### ตัวอย่าง: การส่งรหัสยืนยันตัวตนแบบสองปัจจัยผ่าน WhatsApp

```json
{
    "request": {
        "application":"APP_CODE", "auth":"AUTH_TOKEN",
        "notifications":[{
            "send_date":"now",
            "content_id":"replace_with_your_meta_two_factor_template_name",
            "content_variables":{"1":"AUTH_CODE"},
            "button_url_variables":{"0":"AUTH_CODE"},
            "devices":["whatsapp:REPLACE_WITH_YOUR_PHONE_NO"]
        }]
    }
}
```

### ตัวอย่างการตอบกลับ

```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "Messages": [
      "9648-0B10EXXX-0D9F2XXX"
    ]
  }
}
```

### การตอบกลับข้อผิดพลาด

```json
{
  "status_code": 210,
  "status_message": "Invalid devices list. \"devices\" must be an array.",
  "response": {
    "Messages": []
  }
}
```