# काकाओ एपीआई

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

<Aside type="caution" title="/createKakaoMessage अब अप्रचलित है">
नए इंटीग्रेशन को [Messaging API v2](/hi/developer/api-reference/messaging-api-v2/) का उपयोग करना चाहिए — `Notify` को `platforms: ["KAKAO"]` पास करें और `payload.content.localized_content` के अंदर `kakao` ब्लॉक का उपयोग करें। [माइग्रेशन गाइड](/hi/developer/api-reference/messaging-api-v2/migration-from-v1/#from-createkakaomessage) देखें।
</Aside>

## createKakaoMessage <Badge text="अप्रचलित" variant="caution" size="small" />

उपयोगकर्ताओं को काकाओ संदेश भेजने के लिए इस एंडपॉइंट का उपयोग करें।

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

<Aside type="note">
यह एंडपॉइंट केवल काकाओ मैसेजिंग के लिए समर्पित है। मल्टी-चैनल मैसेजिंग के लिए, [`/createMessage`](/hi/developer/api-reference/messages-api/) का उपयोग करें।
</Aside>

### पूर्वापेक्षाएँ

इस एंडपॉइंट का उपयोग करने से पहले, सुनिश्चित करें:

1.  **काकाओ प्लेटफॉर्म कॉन्फ़िगर किया गया है**: आपके Pushwoosh एप्लिकेशन में काकाओ क्रेडेंशियल्स कॉन्फ़िगर होने चाहिए। [और जानें](/hi/developer/first-steps/connect-messaging-services/kakao-configuration/)

2.  **टेम्प्लेट स्वीकृत हैं**: काकाओ टेम्प्लेट का उपयोग करने से पहले उन्हें बनाया और स्वीकृत किया जाना चाहिए। [और जानें](/hi/product/content/kakao-presets/)

3.  **डिवाइस पंजीकृत हैं**: डिवाइस को काकाओ एंडपॉइंट के रूप में पहचाने जाने के लिए `kakao:` उपसर्ग के साथ पंजीकृत किया जाना चाहिए।

### रिक्वेस्ट बॉडी

| नाम <div style="width:180px"></div> | आवश्यक <div style="width:100px"></div> | प्रकार | विवरण |
| :---- | :---- | :---- | :---- |
| auth\* | हाँ | string | Pushwoosh कंट्रोल पैनल से [API एक्सेस टोकन](/hi/developer/api-reference/api-identifiers/#api-access-token)। |
| application\* | हाँ | string | [Pushwoosh एप्लिकेशन कोड](/hi/developer/api-reference/api-identifiers/#application-code) |
| notifications\* | हाँ | array | नोटिफिकेशन ऑब्जेक्ट्स की ऐरे। नीचे विवरण देखें। |

### नोटिफिकेशन पैरामीटर्स

| नाम <div style="width:180px"></div> | आवश्यक | प्रकार | विवरण |
| :---- | :---- | :---- | :---- |
| send_date* | हाँ | string | संदेश भेजने की तारीख और समय। `YYYY-MM-DD HH:MM:SS` (UTC) प्रारूप का उपयोग करें या तुरंत भेजने के लिए `"now"` का उपयोग करें। सभी समय UTC के रूप में समझे जाते हैं। |
| devices* | यदि `users` प्रदान नहीं किया गया है तो आवश्यक है | array[string] | डिवाइस टोकन की सूची। प्रत्येक टोकन **को** `kakao:` उपसर्ग के साथ होना चाहिए (उदाहरण के लिए, `"kakao:user_token"`)। |
| users* | यदि `devices` प्रदान नहीं किया गया है तो आवश्यक है | array[string] | लक्षित करने के लिए उपयोगकर्ता आईडी की सूची। |
| template* | हाँ | string | काकाओ टेम्प्लेट का नाम। यह एक पूर्व-अनुमोदित टेम्प्लेट होना चाहिए। [और जानें](/hi/product/content/kakao-presets/) |
| kakao_content_variables | नहीं | object | टेम्प्लेट वेरिएबल प्रतिस्थापन के लिए कुंजी-मान जोड़े। कुंजियों को आपके काकाओ टेम्प्लेट में परिभाषित वेरिएबल्स से मेल खाना चाहिए। वैकल्पिक लेकिन आपके काकाओ संदेशों के गतिशील निजीकरण की अनुमति देता है। |

<Aside type="caution" title="महत्वपूर्ण">
आपको `devices` या `users` में से कोई एक प्रदान करना होगा। दोनों को खाली न छोड़ें।
</Aside>

#### निषिद्ध पैरामीटर्स

इस एंडपॉइंट के लिए निम्नलिखित पैरामीटर अनुमत नहीं हैं और इससे एक सत्यापन त्रुटि होगी:

-   `platforms`: प्लेटफॉर्म स्वचालित रूप से काकाओ पर सेट है
-   `filter`: डिवाइस फ़िल्टरिंग समर्थित नहीं है
-   `filter_code`: फ़िल्टर कोड समर्थित नहीं हैं
-   `conditions`: सशर्त लक्ष्यीकरण समर्थित नहीं है

### रिक्वेस्ट का उदाहरण

```json
{
  "request": {
    "auth": "your-api-access-token",        // required. API access token from Pushwoosh Control Panel.
    "application": "XXXXX-XXXXX",           // required. Pushwoosh application code.
    "notifications": [
      {
        "send_date": "now",                 // required. YYYY-MM-DD HH:MM:SS (UTC) OR "now".
        "devices": ["kakao:user123@kakao.com", "kakao:device_abc"],  // required if users is not provided. Device tokens with kakao: prefix.
        "users": ["user_001", "user_002"],  // required if devices is not provided. User IDs to target.
        "template": "welcome_message",      // required. Kakao template name (must be pre-approved).
        "kakao_content_variables": {        // optional. Template variable substitution.
          "user_name": "John Doe",
          "order_number": "12345"
        }
      }
    ]
  }
}
```

### रिस्पॉन्स का उदाहरण

<Tabs>
<TabItem label="200">

```json
{
  "status_code": 200,
  "response": {
    "Messages": ["MESSAGE_ID_1"],
    "Warnings": [],
    "UnknownDevices": {},
    "UnknownUsers": {},
    "FailedDevices": {},
    "UnknownPhoneNumbers": {}
  }
}
```

| फील्ड | प्रकार | विवरण |
|-------|------|-------------|
| `Messages` | array[string] | ट्रैकिंग के लिए बनाए गए संदेश आईडी की ऐरे |
| `Warnings` | array | प्रोसेसिंग के दौरान उत्पन्न कोई भी चेतावनी |
| `UnknownDevices` | object | वे डिवाइस जो नहीं मिल सके |
| `UnknownUsers` | object | उपयोगकर्ता आईडी जिन्हें हल नहीं किया जा सका |
| `FailedDevices` | object | प्रोसेसिंग के दौरान विफल हुए डिवाइस |
| `UnknownPhoneNumbers` | object | वे फ़ोन नंबर जो नहीं मिल सके |

</TabItem>

<TabItem label="210">

```json
{
  "status_code": 210,
  "status_message": "Error description"
}
```

##### सामान्य त्रुटि संदेश

| त्रुटि संदेश | कारण |
| :---- | :---- |
| `Missing required parameter: send_date` | नोटिफिकेशन में `send_date` फ़ील्ड प्रदान नहीं किया गया है |
| `Missing required parameter: devices or users` | न तो `devices` और न ही `users` ऐरे प्रदान की गई है |
| `Invalid Kakao devices list` | एक या अधिक डिवाइस टोकन में `kakao:` उपसर्ग नहीं है |
| `Invalid parameter: platforms` | प्लेटफॉर्म को मैन्युअल रूप से सेट करने का प्रयास किया गया (अनुमति नहीं है) |
| `Kakao template is required` | टेम्प्लेट का नाम प्रदान नहीं किया गया था |
| `Invalid Kakao template` | निर्दिष्ट टेम्प्लेट मौजूद नहीं है |
| `Kakao template not approved` | टेम्प्लेट मौजूद है लेकिन काकाओ द्वारा अनुमोदित नहीं है |
| `Please configure Kakao platform` | एप्लिकेशन में काकाओ क्रेडेंशियल्स कॉन्फ़िगर नहीं हैं |

</TabItem>

<TabItem label="500">

```json
{
  "status_code": 500,
  "status_message": "Internal server error"
}
```

</TabItem>
</Tabs>

### कोड के उदाहरण

<Tabs>
<TabItem label="cURL">

```bash
curl -X POST "https://api.pushwoosh.com/json/1.3/createKakaoMessage" \
  -H "Content-Type: application/json" \
  -d '{
    "request": {
      "auth": "your-api-access-token",
      "application": "XXXXX-XXXXX",
      "notifications": [
        {
          "send_date": "now",
          "devices": ["kakao:user123@kakao.com", "kakao:device_abc"],
          "template": "welcome_message",
          "kakao_content_variables": {
            "user_name": "John Doe",
            "order_number": "12345"
          }
        }
      ]
    }
  }'
```

</TabItem>

<TabItem label="PHP">

```php
<?php
$url = 'https://api.pushwoosh.com/json/1.3/createKakaoMessage';

$data = [
    'request' => [
        'auth' => 'your-api-access-token',
        'application' => 'XXXXX-XXXXX',
        'notifications' => [
            [
                'send_date' => 'now',
                'devices' => ['kakao:user123@kakao.com', 'kakao:device_abc'],
                'template' => 'welcome_message',
                'kakao_content_variables' => [
                    'user_name' => 'John Doe',
                    'order_number' => '12345'
                ]
            ]
        ]
    ]
];

$options = [
    'http' => [
        'header'  => "Content-Type: application/json\r\n",
        'method'  => 'POST',
        'content' => json_encode($data)
    ]
];

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
```

</TabItem>

<TabItem label="Python">

```python
import requests

url = "https://api.pushwoosh.com/json/1.3/createKakaoMessage"

payload = {
    "request": {
        "auth": "your-api-access-token",
        "application": "XXXXX-XXXXX",
        "notifications": [
            {
                "send_date": "now",
                "devices": ["kakao:user123@kakao.com", "kakao:device_abc"],
                "template": "welcome_message",
                "kakao_content_variables": {
                    "user_name": "John Doe",
                    "order_number": "12345"
                }
            }
        ]
    }
}

response = requests.post(url, json=payload)
print(response.json())
```

</TabItem>
</Tabs>

### उदाहरण: डिवाइस के बजाय उपयोगकर्ताओं को भेजना

```json
{
  "request": {
    "auth": "your-api-access-token",
    "application": "XXXXX-XXXXX",
    "notifications": [
      {
        "send_date": "now",
        "users": ["user_001", "user_002", "user_003"],
        "template": "promotion_alert",
        "kakao_content_variables": {
          "discount_percent": "20",
          "promo_code": "SAVE20"
        }
      }
    ]
  }
}
```

### उदाहरण: अनुसूचित संदेश

```json
{
  "request": {
    "auth": "your-api-access-token",
    "application": "XXXXX-XXXXX",
    "notifications": [
      {
        "send_date": "2024-12-25 09:00:00",
        "devices": ["kakao:user123"],
        "template": "holiday_greeting"
      }
    ]
  }
}
```