# WhatsApp API

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

<Aside type="caution" title="/createWhatsAppMessage는 더 이상 사용되지 않습니다">
새로운 통합은 [Messaging API v2](/ko/developer/api-reference/messaging-api-v2/)를 사용해야 합니다 — `Notify`에 `platforms: ["WHATS_APP"]`를 전달하고 `payload.content.localized_content` 내의 `whatsapp` 블록을 사용하세요. [마이그레이션 가이드](/ko/developer/api-reference/messaging-api-v2/migration-from-v1/#from-createwhatsappmessage)를 참조하세요.
</Aside>

<Aside type="note">
WhatsApp 메시지를 보내기 전에 WhatsApp 플랫폼이 올바르게 구성되었는지 확인하세요. [자세히 알아보기](/ko/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`

### 요청 본문

| 이름  <div style="width:180px"></div>   | 필수 <div style="width:100px"></div> | 유형 | 설명 |
| :---- | :---- | :---- | :---- |
| auth\* | 예 | string | Pushwoosh Control Panel의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다. |
| application\* | 예 | string | [Pushwoosh 애플리케이션 코드](/ko/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  | Meta 계정에서 사전 승인된 WhatsApp 템플릿의 식별자입니다.                                                                                                                                                                                                                      |
| devices*              | 예                                       | array   | 고객 전화번호입니다 ([`/registerDevice`](/ko/developer/api-reference/device-api#registerdevice)를 사용하여 [User ID](/ko/developer/api-reference/api-identifiers/#user-id)와 연결하고 `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  | Control Panel의 WhatsApp Preset Code입니다.                                                                                |
| language              | 아니요                                        | string  | WhatsApp 템플릿의 언어 로케일입니다 (Meta WhatsApp 템플릿 편집기의 로케일과 일치해야 합니다). 기본값: `"en_US"`. 예시: `"en_GB"`.                                                                                                            |

<Aside type="caution" title="중요">
****
현재 각 WhatsApp 메시지는 고객별로 별도의 요청으로 보내야 합니다.
</Aside>

### 요청 예시

```json
{
  "request": {
    "application": "12XXX-67XXX",           // 필수. Pushwoosh 애플리케이션 코드.
    "auth": "yxoPUlwqm…………pIyEX4H",         // 필수. Pushwoosh Control Panel의 API 액세스 토큰.
    "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 전화번호 (/registerDevice를 사용하여
                                            //           UserId와 연결하고 "hwid" 파라미터에 지정하거나
                                            //           "use_auto_registration"을 사용해야 함).
                                            //           여기에는 하나의 WhatsApp 번호만 지정할 수 있습니다.
      "preset": "XXXXX-XXXXX",              // 선택. Control Panel의 WhatsApp Preset Code.
      "content_variables": {                // 선택. 메시지 콘텐츠를 사용자 정의하기 위한 콘텐츠 변수.
        "1": "John"
      },
      "header_variables": {                 // 선택. WhatsApp 메시지 헤더에 대한 변수.
        "image": "https://image-url.png"
      },
      "language": "en_GB",                  // 선택. WhatsApp 템플릿의 언어 로케일 (Meta WhatsApp 템플릿 편집기의 로케일과 일치해야 함). 기본값: "en_US".
      "use_auto_registration": true         // 선택. "devices" 파라미터에 지정된 WhatsApp 번호를
                                            //           자동으로 등록합니다.
    }]
  }
}
```

### 예시: WhatsApp을 통해 2단계 인증 코드 보내기

```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": []
  }
}
```