# พารามิเตอร์ /createMessage

<Aside type="caution" title="เลิกใช้งานแล้ว">
`/createMessage` เลิกใช้งานแล้ว การผสานรวมใหม่ควรใช้ [Messaging API v2](/th/developer/api-reference/messaging-api-v2/) — ดู [คู่มือการย้ายระบบ](/th/developer/api-reference/messaging-api-v2/migration-from-v1/) สำหรับการจับคู่พารามิเตอร์ด้านล่างแบบฟิลด์ต่อฟิลด์
</Aside>

ที่นี่คุณจะพบคำอธิบายของพารามิเตอร์ API [`/createMessage`](/th/developer/api-reference/messages-api/#createmessage)

- [พารามิเตอร์ที่จำเป็น](#required-parameters) ต้องรวมอยู่ด้วยเพื่อส่งคำขอ API `/createMessage` และส่ง push notification ในเวลาที่กำหนดได้สำเร็จ

- [พารามิเตอร์ทางเลือก](#optional-parameters) ช่วยให้คุณสามารถปรับแต่งคุณสมบัติของ push notification ได้

<Aside type="note">
หากคุณใช้ _/createMessage_ เพื่อส่ง SMS โปรดดูที่ [พารามิเตอร์สำหรับการส่ง SMS](/th/developer/api-reference/sms/#createsmsmessage) พารามิเตอร์อื่นๆ จะไม่ถูกส่งผ่าน
</Aside>

## พารามิเตอร์ที่จำเป็น

พารามิเตอร์ที่จำเป็นเป็นสิ่งบังคับที่ต้องใช้ในคำขอ [`/createMessage`](/th/developer/api-reference/messages-api/#createmessage) มิฉะนั้น คำขอจะไม่ถูกส่ง

### application

รหัสเฉพาะของแอปที่สร้างขึ้นในบัญชี Pushwoosh ของคุณ รหัสแอปสามารถพบได้ที่มุมบนซ้ายของ Control Panel หรือในการตอบกลับคำขอ [`/createApplication`](/th/developer/api-reference/applications/#createapplication) รหัสแอปเป็นชุดอักขระ 10 ตัว (ทั้งตัวอักษรและตัวเลข) ที่คั่นด้วยยัติภังค์

<img src="/messages-api-prerequisites-1.webp" alt="รหัสแอปพลิเคชัน Pushwoosh ที่แสดงใน Control Panel ที่มุมบนซ้าย"/>

เมื่อสร้างแอปผ่าน API คุณจะได้รับรหัสแอปในการตอบกลับคำขอ [`/createApplication`](/th/developer/api-reference/applications/#createapplication) ของคุณ

หากต้องการรับรหัสของแอปที่สร้างไว้ก่อนหน้านี้ผ่าน API ให้เรียกใช้ [`/getApplications`](/th/developer/api-reference/applications/#getapplications) ในการตอบกลับคำขอ [`/getApplications`](/th/developer/api-reference/applications/#getapplications) คุณจะได้รับรายการแอปทั้งหมดที่สร้างขึ้นในบัญชี Pushwoosh ของคุณพร้อมชื่อและรหัส

### auth

โทเค็นการเข้าถึง API จาก Pushwoosh Control Panel ไปที่ **Settings** → **API Access** และคัดลอกโทเค็นที่คุณต้องการใช้หรือสร้างโทเค็นใหม่

<img src="/messages-api-prerequisites-2.webp" alt="หน้าการตั้งค่า API Access ใน Pushwoosh Control Panel ที่แสดงโทเค็นการเข้าถึง API"/>

เมื่อสร้างโทเค็นการเข้าถึง ให้ระบุสิทธิ์การใช้งาน เลือกช่องทำเครื่องหมายสำหรับประเภทของกิจกรรมที่คุณจะใช้โทเค็น API ด้วย คุณสามารถสร้างโทเค็น API เฉพาะแอปได้โดยการเลือกช่องทำเครื่องหมาย Applications

<img src="/messages-api-prerequisites-3.webp" alt="กล่องโต้ตอบการสร้างโทเค็น API พร้อมสิทธิ์และช่องทำเครื่องหมายแอปพลิเคชัน"/>

### content

สตริงหรืออ็อบเจกต์ที่กำหนดเนื้อหาของข้อความ พารามิเตอร์ "content" ที่ส่งด้วยค่าประเภทสตริงจะส่งข้อความเดียวกันสำหรับผู้รับทุกคน

```txt title="String"
"content": "Hello world!",
```

อ็อบเจกต์ JSON ใช้สำหรับระบุเนื้อหาโดยใช้ [Dynamic Content](/th/developer/guides/personalization/dynamic-content/) ตัวอย่างเช่น สำหรับข้อความหลายภาษา

```txt title="Object"
"content": {
  "en": "Hello!",
  "es": "¡Hola!",
  "de": "Hallo!"
},
```

### notifications

อาร์เรย์ JSON ของคุณสมบัติพุช ต้องมีพารามิเตอร์ที่จำเป็นอย่างน้อย `content` และ `send_date`

พารามิเตอร์ทางเลือกที่จะใช้ภายในอาร์เรย์ "notifications":

* [campaign](#campaign)
* [capping_days](#capping_days)
* [capping_count](#capping_count)
* [conditions](#conditions)
* [data](#data)
* [devices](#devices)
* [dynamic_content](#dynamic_content)
* [filter](#filter)
* [ignore_user_timezone](#ignore_user_timezone)
* [inbox_date](#inbox_date)
* [inbox_image](#inbox_image)
* [link](#link)
* [minimize_link](#minimize_link)
* [message_type](#message_type)
* [platforms](#platforms)
* [preset](#preset)
* [rich_media](#rich_media)
* [send_rate](#send_rate)
* [timezone](#timezone)
* [template_bindings](#template_bindings)
* [transactionId](#transactionid)
* [users](#users)

### send_date

วันที่และเวลาที่จะส่งข้อความ สามารถเป็นวันที่และเวลาใดก็ได้ในรูปแบบ YYYY-MM-DD HH:mm หรือ 'now' หากตั้งค่าเป็น 'now' ข้อความจะถูกส่งทันทีหลังจากส่งคำขอ

## พารามิเตอร์ทางเลือก

### campaign

รหัสของ Campaign หากต้องการรับรหัส Campaign ให้ไปที่ **Statistics** → **Aggregated statistics** และเลือก Campaign ที่คุณจะใช้ รหัสแคมเปญจะปรากฏที่ส่วนท้ายของ URL ของหน้าในรูปแบบ `XXXXX-XXXXX`

**ตัวอย่าง:**

**URL:** `https://app.pushwoosh.com/applications/AAAAA-AAAAA/statistics/aggregated-message?campaignCode=XXXXX-XXXXX`

**รหัสแคมเปญ:** `XXXXX-XXXXX`

หากต้องการรับรายการ Campaigns พร้อมรหัส ให้เรียกใช้ [`/getCampaigns`](/th/developer/api-reference/campaigns/#getcampaigns) ในการตอบกลับคำขอ `/getCampaigns` คุณจะได้รับรายการ Campaigns ทั้งหมดที่สร้างขึ้นสำหรับแอปเฉพาะในบัญชี Pushwoosh ของคุณ พร้อมด้วยรหัส ชื่อ และคำอธิบาย

### capping_days

ระยะเวลาที่จะใช้สำหรับการจำกัดความถี่ เป็นวัน (สูงสุด 30 วัน) ดูรายละเอียดที่ [Frequency capping](/th/product/messaging-channels/global-frequency-capping/)

การจำกัดความถี่จะไม่นำไปใช้กับข้อความที่มี `message_type: transactional` ในกรณีอื่นๆ ทั้งหมด จะมีการใช้การจำกัดความถี่ รวมถึงคำขอที่ละเว้น `message_type`

### capping_count

จำนวนพุชสูงสุดที่สามารถส่งจากแอปเฉพาะไปยังอุปกรณ์เฉพาะภายในระยะเวลา "capping_days" ในกรณีที่ข้อความที่สร้างขึ้นเกินขีดจำกัด "capping_count" สำหรับอุปกรณ์ ข้อความนั้นจะไม่ถูกส่งไปยังอุปกรณ์นั้น ดูรายละเอียดที่ [Frequency capping](/th/product/messaging-channels/global-frequency-capping/)

### conditions

Conditions คืออาร์เรย์เช่น `[tagName, operator, operand]` ที่ใช้สำหรับการส่งข้อความที่กำหนดเป้าหมายตาม [Tags](/th/developer/guides/audience-and-segmentation/tags/) และค่าของมัน โดยที่:

* tagName — ชื่อของแท็กที่จะใช้
* [operator](/th/developer/guides/audience-and-segmentation/tags#tag-operators) — ตัวดำเนินการเปรียบเทียบค่า ("EQ" | "IN" | "NOTEQ" | "NOTIN" | "LTE" | "GTE" | "BETWEEN" | "NOTSET" | "ANY")
* [operand](/th/developer/guides/audience-and-segmentation/tags#tag-values) — ค่า Tag ประเภทใดประเภทหนึ่งต่อไปนี้: string | integer | array | date | boolean | list

#### คำอธิบายตัวดำเนินการ

|  |  |
| -------- | ----------- |
| **EQ** | ค่าแท็กเท่ากับ operand |
| **IN** | ค่าแท็กตัดกับ operand (operand ต้องเป็นอาร์เรย์เสมอ) |
| **NOTEQ** | ค่าแท็กไม่เท่ากับ operand |
| **NOTIN** | ค่าแท็กไม่ตัดกับ operand (operand ต้องเป็นอาร์เรย์เสมอ) |
| **GTE** | ค่าแท็กมากกว่าหรือเท่ากับ operand |
| **LTE** | ค่าแท็กน้อยกว่าหรือเท่ากับ operand |
| **BETWEEN** | ค่าแท็กมากกว่าหรือเท่ากับค่า operand ต่ำสุด แต่น้อยกว่าหรือเท่ากับค่า operand สูงสุด (operand ต้องเป็นอาร์เรย์เสมอ) |
| **NOTSET** | ไม่ได้ตั้งค่าแท็ก ไม่พิจารณา Operand |
| **ANY** | แท็กมีค่าใดๆ ไม่พิจารณา Operand |

#### แท็กสตริง

**ตัวดำเนินการที่ถูกต้อง**: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY

**Operands ที่ถูกต้อง:**
|  |  |
| -------- | ------- |
| **EQ, NOTEQ** | operand ต้องเป็นสตริง |
| **IN, NOTIN** | operand ต้องเป็นอาร์เรย์ของสตริงเช่น `["value 1", "value 2", "value N"]` |
| **NOTSET** | ไม่ได้ตั้งค่าแท็ก ไม่พิจารณา Operand |
| **ANY** | แท็กมีค่าใดๆ ไม่พิจารณา Operand |

#### แท็กจำนวนเต็ม

**ตัวดำเนินการที่ถูกต้อง**: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY

**Operands ที่ถูกต้อง:**

|  | |
| -------- | ------- |
| **EQ, NOTEQ, GTE, LTE** | operand ต้องเป็นจำนวนเต็ม |
| **IN, NOTIN** | operand ต้องเป็นอาร์เรย์ของจำนวนเต็มเช่น `[value 1, value 2, value N]` |
| **BETWEEN** | operand ต้องเป็นอาร์เรย์ของจำนวนเต็มเช่น `[min_value, max_value]` |
| **NOTSET** | ไม่ได้ตั้งค่าแท็ก ไม่พิจารณา Operand |
| **ANY** | แท็กมีค่าใดๆ ไม่พิจารณา Operand |

#### แท็กวันที่

**ตัวดำเนินการที่ถูกต้อง**: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY

**Operands ที่ถูกต้อง:**

* `"YYYY-MM-DD 00:00"` (สตริง)
* unix timestamp `1234567890` (จำนวนเต็ม)
* `"N days ago"` (สตริง) สำหรับตัวดำเนินการ EQ, BETWEEN, GTE, LTE

#### แท็กบูลีน

**ตัวดำเนินการที่ถูกต้อง**: EQ, NOTSET, ANY

**Operands ที่ถูกต้อง:** `0, 1, true, false`

#### แท็กรายการ

**ตัวดำเนินการที่ถูกต้อง**: IN, NOTIN, NOTSET, ANY

**Operands ที่ถูกต้อง:** operand ต้องเป็นอาร์เรย์ของสตริงเช่น `["value 1", "value 2", "value N"]`

<Aside type="danger" title="สำคัญ">
โปรดจำไว้ว่าไม่ควรใช้พารามิเตอร์ “filter” และ “conditions” ร่วมกัน\
นอกจากนี้ ทั้งสองพารามิเตอร์ **จะถูกละเว้น** หากใช้พารามิเตอร์ "devices" ในคำขอเดียวกัน
</Aside>

<Aside type="note" title="แท็กประเทศและภาษา">
ค่าแท็กภาษาเป็นรหัสสองตัวอักษรตัวพิมพ์เล็กตาม [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
ค่าแท็กประเทศเป็นรหัสสองตัวอักษรตัวพิมพ์ใหญ่ตาม [ISO_3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)

ตัวอย่างเช่น หากต้องการส่ง push notification ไปยังผู้สมัครสมาชิกที่พูดภาษาโปรตุเกสในบราซิล คุณจะต้องระบุเงื่อนไขต่อไปนี้: `"conditions": [["Country", "EQ", "BR"],["Language", "EQ", "pt"]]`
</Aside>

### conditions_operator

ตัวดำเนินการตรรกะสำหรับอาร์เรย์เงื่อนไข ค่าที่เป็นไปได้: AND | OR ค่าเริ่มต้นคือ AND

หากตัวดำเนินการที่ใช้คือ AND (เมื่อไม่ได้ระบุตัวดำเนินการ หรือพารามิเตอร์ 'conditions_operator' มีค่า 'AND') อุปกรณ์ที่ปฏิบัติตามเงื่อนไขทั้งหมดพร้อมกันจะได้รับ push notification

หากตัวดำเนินการคือ OR อุปกรณ์ที่ปฏิบัติตามเงื่อนไขใดๆ ที่ระบุจะได้รับข้อความ

### data

สตริง JSON หรืออ็อบเจกต์ JSON ที่ใช้ในการส่ง [ข้อมูลที่กำหนดเอง](/th/developer/guides/messaging-channels/using-custom-data) ใดๆ ใน payload ของพุช จะถูกส่งเป็นพารามิเตอร์ "u" ใน payload (แปลงเป็นสตริง JSON)

### devices

อาร์เรย์ของ [push tokens](/th/developer/pushwoosh-knowledge-hub/device-identifiers/#push-token) หรือ [hwids](/th/developer/pushwoosh-knowledge-hub/device-identifiers/#hwid) เพื่อส่ง push notifications ที่กำหนดเป้าหมาย หากตั้งค่าไว้ ข้อความจะถูกส่งไปยังอุปกรณ์ในรายการเท่านั้น

### dynamic_content

ตัวยึดตำแหน่งสำหรับ [Dynamic Content](/th/product/personalization/dynamic-content) ที่จะใช้แทนค่า Tag ของอุปกรณ์ ตัวอย่างด้านล่างจะส่งข้อความ "Hello, John!" ไปยังผู้ใช้ทุกคนที่คุณกำหนดเป้าหมาย หากไม่ได้ตั้งค่า ค่า Dynamic Content จะถูกนำมาจาก Tags ของอุปกรณ์

```
"content": "Hello, {firstname|CapitalizeFirst}!",
"dynamic_content_placeholders": {
  "firstname": "John",
  "lastname": "Doe"
},
```

### filter

ชื่อของ [Segment](/th/product/audience-data-and-segmentation/segmentation/) ตรงตามที่สร้างใน Pushwoosh Control Panel หรือผ่านคำขอ API [`/createFilter`](/th/developer/api-reference/segmentation-filters-api/#createfilter) ไปที่ส่วน **Audience** → **Segments** และตรวจสอบรายการ Segments ที่สร้างขึ้น

<img src="/messages-api-prerequisites-7.webp" alt="รายการ Segments ในส่วน Audience ของ Pushwoosh Control Panel"/>

หากต้องการรับรายการ Segments ผ่าน API ให้เรียกใช้เมธอด API [`/listFilters`](/th/developer/api-reference/segmentation-filters-api/#listfilters) ในการตอบกลับคำขอ `/listFilters` คุณจะได้รับรายการ Segments ทั้งหมดที่สร้างขึ้นในบัญชี Pushwoosh ของคุณ พร้อมด้วยชื่อเงื่อนไข และวันหมดอายุของ Segments

### ignore_user_timezone

หากตั้งค่าเป็น 'true' จะส่งข้อความในเวลาและวันที่ที่ระบุในพารามิเตอร์ "send_date" ตาม UTC-0

หากตั้งค่าเป็น 'false' ผู้ใช้จะได้รับข้อความตามเวลาท้องถิ่นที่ระบุตามการตั้งค่าของอุปกรณ์

### inbox_date

วันที่ที่ข้อความควรถูกเก็บไว้ใน [Inbox](/th/developer/guides/message-inbox/mobile-message-inbox) ของผู้ใช้ หากไม่ได้ระบุ ข้อความจะถูกลบออกจาก Inbox ในวันถัดไปหลังจากวันที่ส่ง

<Aside type="note">
หากต้องการบันทึกข้อความลงใน Inbox ให้ใช้พารามิเตอร์ 'inbox' อย่างน้อยหนึ่งตัว: "inbox_date" หรือ "inbox_image"
</Aside>

<Aside type="caution">
ข้อความจะถูกลบออกจาก Inbox เวลา 00:00:01 ของวันที่ระบุ ดังนั้นวันก่อนหน้าจึงเป็นวันสุดท้ายที่ผู้ใช้สามารถเห็นข้อความใน Inbox ของตนได้
</Aside>

### inbox_image

URL ของรูปภาพที่กำหนดเองที่จะแสดงใกล้กับข้อความใน [Inbox](/th/developer/guides/message-inbox/mobile-message-inbox)

<Aside type="note">
หากต้องการบันทึกข้อความลงใน Inbox ให้ใช้พารามิเตอร์ 'inbox' อย่างน้อยหนึ่งตัว: "inbox_date" หรือ "inbox_image"
</Aside>

### inbox_days

อายุการใช้งานของข้อความใน inbox เป็นวัน สูงสุด 30 วัน หลังจากช่วงเวลานี้ ข้อความจะถูกลบออกจาก inbox สามารถใช้แทนพารามิเตอร์ **inbox_date** ได้

### link

URL ที่จะเปิดเมื่อผู้ใช้เปิด push notification

### message_type

ระบุประเภทข้อความพุช ค่าที่ใช้ได้คือ `marketing` และ `transactional` ดูรายละเอียดที่ [ข้อความการตลาดและข้อความธุรกรรม](/th/product/messaging-channels/marketing-vs-transactional/)

พารามิเตอร์นี้เป็นทางเลือก หากละเว้น ผู้ใช้ที่มี `PW_ControlGroup: true` จะไม่ได้รับข้อความ

### minimize_link

ตัวย่อ URL เพื่อย่อ URL ที่ส่งในพารามิเตอร์ "link" โปรดทราบว่าขนาด payload ของ push notification มีจำกัด ดังนั้นควรพิจารณาสร้าง URL สั้นๆ เพื่อไม่ให้เกินขีดจำกัด ค่าที่ใช้ได้: 0 — ไม่ย่อ, 2 — bitly ค่าเริ่มต้น = 2 ตัวย่อ URL ของ Google ถูกปิดใช้งานตั้งแต่วันที่ 30 มีนาคม 2019

### platforms

อาร์เรย์ของรหัสแพลตฟอร์มเพื่อส่งข้อความไปยังแพลตฟอร์มที่ระบุเท่านั้น

รหัสแพลตฟอร์มที่ใช้ได้ ได้แก่: `1` — iOS, `3` — Android, `7` — Mac OS X, `8` — Windows, `9` — Amazon, `10` — Safari, `11` — Chrome, `12` — Firefox, `14` — Email, `17` — Huawei, `18` — SMS, และ `21` — WhatsApp

### preset

รหัสของ [Preset](/th/product/content/push-presets/) ที่สร้างใน Pushwoosh Control Panel หรือผ่าน API หากต้องการรับรหัส preset ให้ไปที่ **Content** → **Presets** ขยาย preset ที่คุณจะใช้ และคัดลอก **Preset Code** จากรายละเอียดของ preset

<img src="/messages-api-prerequisites-8.webp" alt="รายการ Presets ในส่วน Content ที่แสดง Preset Code"/>

### rich_media

รหัสของหน้า [Rich Media](/th/product/content/in-apps/) ที่คุณจะแนบไปกับข้อความของคุณ หากต้องการรับรหัส ให้ไปที่ **Content** → **Rich Media** เปิดหน้า Rich Media ที่คุณจะใช้ และคัดลอกรหัสจากแถบ URL ของเบราว์เซอร์ของคุณ รหัสเป็นชุดอักขระ 10 ตัว (ทั้งตัวอักษรและตัวเลข) ที่คั่นด้วยยัติภังค์

<img src="/messages-api-prerequisites-9.webp" alt="หน้า Rich Media ในส่วน Content พร้อมรหัส Rich Media ในแถบ URL ของเบราว์เซอร์"/>

### send_rate

การควบคุมความเร็วเพื่อจำกัดความเร็วในการส่งพุช ค่าที่ถูกต้องอยู่ระหว่าง 100 ถึง 1000 พุช/วินาที

### timezone

เขตเวลาที่จะนำมาพิจารณาเมื่อส่งข้อความในวันที่และเวลาที่กำหนด หากตั้งค่าไว้ เขตเวลาของอุปกรณ์จะถูกละเว้น หากละเว้น ข้อความจะถูกส่งในเวลา UTC ดูเขตเวลาที่รองรับได้ที่ [https://php.net/manual/timezones.php](https://php.net/manual/timezones.php)

### template_bindings

ตัวยึดตำแหน่งเทมเพลตที่จะใช้ในเทมเพลตเนื้อหาของคุณ ดูรายละเอียดที่ [คู่มือ Liquid Templates](/th/developer/guides/personalization/liquid-templates/)

### transactionId

ตัวระบุข้อความที่ไม่ซ้ำกันเพื่อป้องกันข้อความซ้ำซ้อนในกรณีที่เกิดปัญหาเครือข่าย คุณสามารถกำหนด ID ใดๆ ให้กับข้อความที่สร้างขึ้นผ่านคำขอ [`/createMessage`](/th/developer/api-reference/messages-api/#createmessage) หรือ [`/createTargetedMessage`](/th/developer/api-reference/messages-api/#createtargetedmessage) ได้ ซึ่งจะถูกเก็บไว้ที่ฝั่ง Pushwoosh เป็นเวลา 5 นาที

### users

อาร์เรย์ของ [userIds](/th/developer/pushwoosh-knowledge-hub/users-userids/) User ID เป็นตัวระบุผู้ใช้ที่ไม่ซ้ำกันซึ่งตั้งค่าโดยคำขอ API [`/registerUser`](/th/developer/api-reference/user-centric-api/), [`/registerDevice`](/th/developer/api-reference/device-api/#registerdevice) หรือ [`/registerEmail`](/th/developer/api-reference/email-api/)