# उपयोगकर्ता केंद्रित एपीआई

उपयोगकर्ता केंद्रित एपीआई अलग-अलग डिवाइस के बजाय उपयोगकर्ताओं के साथ काम करता है। उपयोगकर्ता की पहचान आपके द्वारा असाइन किए गए [User ID](/hi/developer/api-reference/api-identifiers/#user-id) से होती है, और एक उपयोगकर्ता के कई डिवाइस हो सकते हैं। User ID को किसी डिवाइस से लिंक करने, किसी उपयोगकर्ता को उसके सभी डिवाइस सहित हटाने और उपयोगकर्ता द्वारा किए गए इवेंट पोस्ट करने के लिए इन विधियों का उपयोग करें।

## registerUser

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

बाहरी उपयोगकर्ता आईडी को एक निर्दिष्ट डिवाइस के साथ जोड़ता है।

#### अनुरोध हेडर

| नाम | आवश्यक | मान | विवरण |
|---|---|---|---|
| Authorization | हाँ | Token `XXXX` | डिवाइस एपीआई तक पहुंचने के लिए [एपीआई डिवाइस टोकन](/hi/developer/api-reference/api-access-token/#device-api-token)। `XXXX` को अपने वास्तविक डिवाइस एपीआई टोकन से बदलें। |

#### अनुरोध बॉडी

| नाम | आवश्यक | प्रकार | विवरण |
|---|---|---|---|
| userId | नहीं | string | एक डिवाइस के साथ जोड़ने के लिए [उपयोगकर्ता आईडी](/hi/developer/api-reference/api-identifiers/#user-id)। यदि खाली है, तो hwid का उपयोग करें। |
| application | हाँ | string | [Pushwoosh एप्लिकेशन कोड](/hi/developer/api-reference/api-identifiers/#application-code) |
| hwid | हाँ | string | [Pushwoosh HWID](/hi/developer/api-reference/api-identifiers/#hardware-id) |
| tz_offset | नहीं | integer | डिवाइस के लिए सेकंड में टाइमज़ोन ऑफ़सेट। |
| device_type | नहीं | integer | [डिवाइस प्रकार](/hi/developer/api-reference/api-identifiers/#device-type)। `/registerDevice` में संभावित मान देखें। |

बाद में [`/createMessage`](/hi/developer/api-reference/messages-api/#createmessage) एपीआई कॉल (_users_ पैरामीटर) में उपयोग किया जा सकता है।\
आप इस फ़ंक्शन को पुश टोकन प्राप्त करने से पहले और [`/registerDevice`](/hi/developer/api-reference/device-api/#registerdevice) कॉल से पहले कॉल कर सकते हैं।

#### अनुरोध उदाहरण

```json
{
  "request": {
    "userId": "user_3078a",                     // वैकल्पिक। यदि खाली है, तो hwid का उपयोग करें
    "application": "XXXXX-XXXXX",               // आवश्यक। Pushwoosh एप्लिकेशन कोड
    "hwid": "8f65b16df378e7a6bece9614e1530fb2", // आवश्यक। हार्डवेयर डिवाइस आईडी
    "tz_offset": -3600,                         // वैकल्पिक। सेकंड में टाइमज़ोन ऑफ़सेट
    "device_type": 3                            // वैकल्पिक। डिवाइस प्रकार, /registerDevice देखें
                                                //           डिवाइस प्रकारों के लिए
  }
}
```

#### प्रतिक्रिया उदाहरण

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200, 
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

<Aside type="note">
ईमेल के लिए, [`/registerEmailUser`](/hi/developer/api-reference/email-api/#registeremailuser) को कॉल करें।
</Aside>

## deleteUser

`POST` `https://api.pushwoosh.com/api/v2/device-api/deleteUser`

एप्लिकेशन के भीतर निर्दिष्ट [उपयोगकर्ता आईडी](/hi/developer/api-reference/api-identifiers/#user-id) से जुड़े एक उपयोगकर्ता और सभी उपकरणों को हटाता है। अनुरोध को अतुल्यकालिक रूप से संसाधित किया जाता है, और जैसे ही हटाने का अनुरोध प्रसंस्करण के लिए स्वीकार कर लिया जाता है, एंडपॉइंट `200 OK` लौटाता है।

#### अनुरोध हेडर

| नाम | आवश्यक | मान | विवरण |
|---|---|---|---|
| Authorization | हाँ | Token `XXXX` | डिवाइस एपीआई तक पहुंचने के लिए [एपीआई डिवाइस टोकन](/hi/developer/api-reference/api-access-token/#device-api-token)। `XXXX` को अपने वास्तविक डिवाइस एपीआई टोकन से बदलें। |
| Content-Type | हाँ | application/json | |

#### अनुरोध बॉडी

| नाम | आवश्यक | प्रकार | विवरण |
|---|---|---|---|
| application | हाँ | string | [Pushwoosh एप्लिकेशन कोड](/hi/developer/api-reference/api-identifiers/#application-code) |
| user_id | हाँ | string | हटाने के लिए [उपयोगकर्ता आईडी](/hi/developer/api-reference/api-identifiers/#user-id)। निर्दिष्ट एप्लिकेशन में इस उपयोगकर्ता से जुड़े सभी डिवाइस हटा दिए जाएंगे। |


#### अनुरोध उदाहरण

```json
{
  "application": "XXXXX-XXXXX",   // आवश्यक। Pushwoosh एप्लिकेशन कोड
  "user_id": "user_3078a"         // आवश्यक। हटाने के लिए उपयोगकर्ता आईडी
}
```

#### प्रतिक्रिया उदाहरण

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

##### स्थिति कोड

| HTTP स्थिति कोड | status_code | विवरण |
|---|---|---|
| 200 | 200 | हटाने का अनुरोध स्वीकार किया गया |
| 200 | 210 | तर्क त्रुटि। अधिक जानकारी के लिए status_message देखें। |
| 400 | N/A | विकृत अनुरोध स्ट्रिंग |
| 401 | N/A | अनुपलब्ध या अमान्य प्राधिकरण टोकन |
| 500 | 500 | आंतरिक त्रुटि |

## postEvent

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

एक घटना को ट्रिगर करता है।

#### अनुरोध हेडर

| नाम | आवश्यक | मान | विवरण |
|---|---|---|---|
| Authorization | हाँ | Token `XXXX` | डिवाइस एपीआई तक पहुंचने के लिए [एपीआई डिवाइस टोकन](/hi/developer/api-reference/api-access-token/#device-api-token)। `XXXX` को अपने वास्तविक डिवाइस एपीआई टोकन से बदलें। |


#### अनुरोध बॉडी

| नाम | आवश्यक | प्रकार | विवरण |
|---|---|---|---|
| hwid | हाँ | string | एक /registerDevice अनुरोध में प्रयुक्त [हार्डवेयर डिवाइस आईडी](/hi/developer/api-reference/api-identifiers/#hardware-id)। एक घटना को ट्रिगर करने वाले उपयोगकर्ता की पहचान करने के लिए 'userId' के साथ उपयोग किया जा सकता है। |
| application | हाँ | string | [Pushwoosh एप्लिकेशन कोड](/hi/developer/api-reference/api-identifiers/#application-code) |
| event | हाँ | string | [इवेंट का नाम](/hi/developer/api-reference/api-identifiers/#event-name) ठीक वैसा ही जैसा Pushwoosh कंट्रोल पैनल में बनाया गया है। |
| attributes | हाँ | object | इवेंट विशेषताओं के साथ JSON ऑब्जेक्ट। यदि कोई विशेषता पास करने की आवश्यकता नहीं है तो इसे खाली छोड़ दें। |
| timestampUTC | नहीं | integer | UTC में टाइमस्टैम्प। |
| timestampCurrent | नहीं | integer | स्थानीय समय में टाइमस्टैम्प। |
| userId | हाँ | string | उस उपयोगकर्ता से संबद्ध [उपयोगकर्ता आईडी](/hi/developer/api-reference/api-identifiers/#user-id) जिसने घटना को ट्रिगर किया है। इसे HWID द्वारा प्रतिस्थापित किया जा सकता है या इसके साथ उपयोग किया जा सकता है। |
| device_type | नहीं | integer | [संभावित मान देखें](/hi/developer/api-reference/api-identifiers/#device-type) |

अनुरोध में इवेंट का नाम Pushwoosh कंट्रोल पैनल में इवेंट के नाम से मेल खाना चाहिए। ध्यान दें कि यदि इवेंट में कोई विशेषता नहीं है तो "attributes" प्रॉपर्टी खाली हो सकती है (लेकिन छोड़ी नहीं जा सकती)।

#### अनुरोध उदाहरण

```json
{
  "request":{ 
    "hwid": "8f65b16df378e7a6bece9614e1530fb2", // आवश्यक। /registerDevice API में प्रयुक्त हार्डवेयर डिवाइस आईडी।
                                                //           एक उपयोगकर्ता की पहचान करने के लिए userId के साथ उपयोग किया जा सकता है
                                                //           जिसने एक घटना को ट्रिगर किया है।
    "application": "XXXXX-XXXXX",               // आवश्यक। Pushwoosh एप्लिकेशन कोड
    "event": "activityCompleted",               // आवश्यक। इवेंट का नाम ठीक वैसा ही जैसा Pushwoosh कंट्रोल पैनल में बनाया गया है
    "attributes": {                             // आवश्यक। यदि कोई विशेषता पास करने की आवश्यकता नहीं है तो खाली छोड़ दें। 
      "login": "facebook",
      "success": "yes",
      "internet": "wifi"
    },
    "timestampUTC": 1435228403,                 // वैकल्पिक। UTC में टाइमस्टैम्प
    "timestampCurrent": 1435253603,             // वैकल्पिक। स्थानीय समय में टाइमस्टैम्प
    "userId": "someuser@user.com",              // आवश्यक। एक उपयोगकर्ता आईडी जिसका उपयोग पहचान के लिए किया जाता है
                                                //           कई उपकरणों पर उपयोगकर्ता। द्वारा प्रतिस्थापित किया जा सकता है
                                                //           या HWID के साथ उपयोग किया जाता है।
    "device_type": 1                            // वैकल्पिक।
  }
}

```

#### प्रतिक्रिया उदाहरण

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "code": "61BC9-84DD0"
  }
}
```
</TabItem>
</Tabs>

#### रूपांतरण ईवेंट भेजना

[मौजूदा इवेंट को मैप करने](/hi/product/audience-data-and-segmentation/events/conversion-events/) के बजाय सीधे राजस्व की रिपोर्ट करने के लिए, इवेंट नाम के रूप में `PW_Conversion` के साथ `postEvent` भेजें और विशेषताओं में लेनदेन का `value` और `currency` भेजें:

```json
{
  "request":{
    "hwid": "8f65b16df378e7a6bece9614e1530fb2",
    "application": "XXXXX-XXXXX",
    "event": "PW_Conversion",
    "attributes": {
      "value": 49.99,               // आवश्यक। लेनदेन राशि
      "currency": "USD",            // आवश्यक। ISO 4217 मुद्रा कोड
      "transaction_id": "txn_8f21", // वैकल्पिक। आपका अपना लेनदेन संदर्भ
      "product_id": "prod_premium"  // वैकल्पिक
    },
    "userId": "someuser@user.com"
  }
}
```

<Aside type="note">
`transaction_id` का उपयोग Pushwoosh द्वारा राजस्व को डुप्लिकेट करने के लिए नहीं किया जाता है - यह आपकी अपनी रिपोर्टिंग और सुलह के लिए जैसा है वैसा ही संग्रहीत किया जाता है। यदि आप एक ही लेनदेन की एक से अधिक बार रिपोर्ट करते हैं, तो प्रत्येक कॉल अलग से दर्ज की जाती है। कैनोनिकल इवेंट और इवेंट मैपिंग एक साथ कैसे फिट होते हैं, यह देखने के लिए [रूपांतरण इवेंट](/hi/product/audience-data-and-segmentation/events/conversion-events/) देखें।
</Aside>

#### स्वचालित राजस्व मैपिंग

यदि किसी इवेंट में `__amount` और `__currency` नाम के अट्रिब्यूट हैं, तो Pushwoosh ऐसा इवेंट पहली बार आने पर उसे स्वचालित रूप से `PW_Conversion` से मैप कर देता है और उसके लिए राजस्व ट्रैकिंग चालू कर देता है, इसके लिए किसी मैनुअल [इवेंट मैपिंग](/hi/product/audience-data-and-segmentation/events/conversion-events/#map-an-existing-event-to-track-revenue) की आवश्यकता नहीं होती। यह `PW_Conversion` के अलावा किसी भी इवेंट नाम पर लागू होता है।