# ব্যবহারকারী কেন্দ্রিক API

## registerUser

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

একটি নির্দিষ্ট ডিভাইসের সাথে এক্সটার্নাল ইউজার আইডি যুক্ত করে।

#### অনুরোধের হেডার

| নাম | প্রয়োজনীয় | মান | বর্ণনা |
|---------------|----------|---------------|------------------------------------------------------------|
| অনুমোদন | হ্যাঁ | টোকেন `XXXX` | ডিভাইস API অ্যাক্সেস করার জন্য [API ডিভাইস টোকেন](/bn/developer/api-reference/api-access-token/#device-api-token)। আপনার আসল ডিভাইস API টোকেন দিয়ে `XXXX` প্রতিস্থাপন করুন। |

#### অনুরোধের বডি

| নাম | প্রয়োজনীয় | প্রকার | বর্ণনা |
| ----------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------ |
| userId | না | string | একটি ডিভাইসের সাথে যুক্ত করার জন্য [ইউজার আইডি](/bn/developer/api-reference/api-identifiers/#user-id)। খালি থাকলে, hwid ব্যবহার করুন। |
| application | হ্যাঁ | string | [Pushwoosh অ্যাপ্লিকেশন কোড](/bn/developer/api-reference/api-identifiers/#application-code) |
| hwid | হ্যাঁ | string | [Pushwoosh HWID](/bn/developer/api-reference/api-identifiers/#hardware-id) |
| tz_offset | না | integer | ডিভাইসের জন্য সেকেন্ডে টাইমজোন অফসেট। |
| device_type | না | integer | [ডিভাইসের প্রকার](/bn/developer/api-reference/api-identifiers/#device-type)। `/registerDevice`-এ সম্ভাব্য মানগুলি দেখুন। |

পরে [`/createMessage`](/bn/developer/api-reference/messages-api/#createmessage) API কলে (_users_ প্যারামিটার) ব্যবহার করা যেতে পারে।\
আপনি পুশ টোকেন পাওয়ার আগে এবং [`/registerDevice`](/bn/developer/api-reference/device-api/#registerdevice) কল করার আগে এই ফাংশনটি কল করতে পারেন।

#### অনুরোধের উদাহরণ

```json
{
  "request": {
    "userId": "user_3078a",                     // optional. If empty, use hwid
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "hwid": "8f65b16df378e7a6bece9614e1530fb2", // required. Hardware device ID
    "tz_offset": -3600,                         // optional. Timezone offset in seconds
    "device_type": 3                            // optional. Device type, see /registerDevice
                                                //           for device types
  }
}
```

#### প্রতিক্রিয়ার উদাহরণ

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

<Aside type="note">
ইমেইলের জন্য, [`/registerEmailUser`](/bn/developer/api-reference/email-api/#registeremailuser) কল করুন।
</Aside>

## deleteUser

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

অ্যাপ্লিকেশনের মধ্যে নির্দিষ্ট [ইউজার আইডি](/bn/developer/api-reference/api-identifiers/#user-id)-এর সাথে যুক্ত একজন ব্যবহারকারী এবং সমস্ত ডিভাইস মুছে ফেলে। অনুরোধটি অ্যাসিঙ্ক্রোনাসভাবে প্রক্রিয়া করা হয়, এবং ডিলিট অনুরোধ প্রক্রিয়াকরণের জন্য গৃহীত হওয়ার সাথে সাথে এন্ডপয়েন্টটি `200 OK` ফিরিয়ে দেয়।

#### অনুরোধের হেডার

| নাম | প্রয়োজনীয় | মান | বর্ণনা |
|---------------|----------|------------------|------------------------------------------------------------|
| অনুমোদন | হ্যাঁ | টোকেন `XXXX` | ডিভাইস API অ্যাক্সেস করার জন্য [API ডিভাইস টোকেন](/bn/developer/api-reference/api-access-token/#device-api-token)। আপনার আসল ডিভাইস API টোকেন দিয়ে `XXXX` প্রতিস্থাপন করুন। |
| কন্টেন্ট-টাইপ | হ্যাঁ | application/json | |

#### অনুরোধের বডি

| নাম | প্রয়োজনীয় | প্রকার | বর্ণনা |
| ----------- | -------- | ------ | --------------------------------------------------------------------------------------------------------------- |
| application | হ্যাঁ | string | [Pushwoosh অ্যাপ্লিকেশন কোড](/bn/developer/api-reference/api-identifiers/#application-code) |
| user_id | হ্যাঁ | string | মুছে ফেলার জন্য [ইউজার আইডি](/bn/developer/api-reference/api-identifiers/#user-id)। নির্দিষ্ট অ্যাপ্লিকেশনে এই ব্যবহারকারীর সাথে যুক্ত সমস্ত ডিভাইস সরানো হবে। |


#### অনুরোধের উদাহরণ

```json
{
  "application": "XXXXX-XXXXX",   // required. Pushwoosh application code
  "user_id": "user_3078a"         // required. User ID to delete
}
```

#### প্রতিক্রিয়ার উদাহরণ

<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 | অনুপস্থিত বা অবৈধ Authorization টোকেন |
| 500 | 500 | অভ্যন্তরীণ ত্রুটি |

## postEvent

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

একটি ইভেন্ট ট্রিগার করে।

#### অনুরোধের হেডার

| নাম | প্রয়োজনীয় | মান | বর্ণনা |
|---------------|----------|---------------|------------------------------------------------------------|
| অনুমোদন | হ্যাঁ | টোকেন `XXXX` | ডিভাইস API অ্যাক্সেস করার জন্য [API ডিভাইস টোকেন](/bn/developer/api-reference/api-access-token/#device-api-token)। আপনার আসল ডিভাইস API টোকেন দিয়ে `XXXX` প্রতিস্থাপন করুন। |


#### অনুরোধের বডি

| নাম | প্রয়োজনীয় | প্রকার | বর্ণনা |
| ---------------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| hwid | হ্যাঁ | string | একটি /registerDevice অনুরোধে ব্যবহৃত [হার্ডওয়্যার ডিভাইস আইডি](/bn/developer/api-reference/api-identifiers/#hardware-id)। কোনো ইভেন্ট ট্রিগার করা ব্যবহারকারীকে শনাক্ত করতে 'userId'-এর সাথে ব্যবহার করা যেতে পারে। |
| application | হ্যাঁ | string | [Pushwoosh অ্যাপ্লিকেশন কোড](/bn/developer/api-reference/api-identifiers/#application-code) |
| event | হ্যাঁ | string | Pushwoosh কন্ট্রোল প্যানেলে তৈরি করা [ইভেন্টের নাম](/bn/developer/api-reference/api-identifiers/#event-name)-এর সাথে হুবহু মিল থাকতে হবে। |
| attributes | হ্যাঁ | object | ইভেন্ট অ্যাট্রিবিউট সহ JSON অবজেক্ট। কোনো অ্যাট্রিবিউট পাস করার প্রয়োজন না হলে এটি খালি রাখুন। |
| timestampUTC | না | integer | UTC-তে টাইমস্ট্যাম্প। |
| timestampCurrent | না | integer | স্থানীয় সময়ে টাইমস্ট্যাম্প। |
| userId | হ্যাঁ | string | ইভেন্টটি ট্রিগার করা ব্যবহারকারীর সাথে যুক্ত [ইউজার আইডি](/bn/developer/api-reference/api-identifiers/#user-id)। এটি একটি HWID দ্বারা প্রতিস্থাপিত বা তার সাথে ব্যবহার করা যেতে পারে। |
| device_type | না | integer | [সম্ভাব্য মানগুলি দেখুন](/bn/developer/api-reference/api-identifiers/#device-type) |

অনুরোধে ইভেন্টের নাম অবশ্যই Pushwoosh কন্ট্রোল প্যানেলের ইভেন্টের নামের সাথে মিলতে হবে। মনে রাখবেন যে ইভেন্টের কোনো অ্যাট্রিবিউট না থাকলেও "attributes" প্রপার্টি খালি হতে পারে (কিন্তু বাদ দেওয়া যাবে না)।

#### অনুরোধের উদাহরণ

```json
{
  "request":{ 
    "hwid": "8f65b16df378e7a6bece9614e1530fb2", // required. Hardware device ID used in a /registerDevice API.
                                                //           Can be used along with an userId to identify a 
                                                //           user who has triggered an event.
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "event": "activityCompleted",               // required. Event name exactly as created in Pushwoosh Control Panel
    "attributes": {                             // required. Leave empty if no attributes need to be passed. 
      "login": "facebook",
      "success": "yes",
      "internet": "wifi"
    },
    "timestampUTC": 1435228403,                 // optional. Timestamp in UTC
    "timestampCurrent": 1435253603,             // optional. Timestamp in local time
    "userId": "someuser@user.com",              // required. A user id which is used for identification of 
                                                //           users on multiple devices. Can be replaced by
                                                //           or used along with an HWID.
    "device_type": 1                            // optional.
  }
}

```

#### প্রতিক্রিয়ার উদাহরণ

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