# API অ্যাক্সেস টোকেন

API অ্যাক্সেস টোকেন হল আপনার অ্যাকাউন্টের একটি নির্দিষ্ট প্রজেক্ট বা একাধিক প্রজেক্টের জন্য নির্ধারিত একটি অনন্য শনাক্তকারী। এটি API-এর মাধ্যমে আপনার প্রজেক্টগুলি পরিচালনা করার জন্য আপনার অ্যাকাউন্টকে প্রমাণীকরণ করে, যার মধ্যে অ্যাকাউন্ট পরিবর্তন, বার্তা পাঠানো, প্রজেক্ট সম্পাদনা ইত্যাদি অন্তর্ভুক্ত।

## API অ্যাক্সেস টোকেনের প্রকারভেদ

Pushwoosh দুই ধরনের API অ্যাক্সেস টোকেন প্রদান করে: **সার্ভার (Server)** এবং **ডিভাইস (Device)**।

প্রতিটি টোকেনের প্রকার শুধুমাত্র তার নির্দিষ্ট API স্কোপের জন্য বৈধ। ভুল টোকেন ব্যবহার করা হলে একটি প্রমাণীকরণ ত্রুটি ঘটবে।

#### সার্ভার API টোকেন

সার্ভার API টোকেনটি ডিভাইস API-এর অধীনে থাকা পদ্ধতিগুলি ছাড়া সমস্ত API পদ্ধতির সাথে ব্যবহৃত হয়। এটি অনুরোধের বডিতে `auth` ফিল্ডে অন্তর্ভুক্ত করা উচিত।

#### ডিভাইস API টোকেন

ডিভাইস API টোকেনটি শুধুমাত্র ডিভাইস API পদ্ধতির সাথে ব্যবহৃত হয়। এটি HTTP অনুরোধের হেডারে `Authorization` হেডার ব্যবহার করে অন্তর্ভুক্ত করা উচিত।
নিচে সঠিক হেডার ফরম্যাটের একটি উদাহরণ দেওয়া হল:

```
Authorization: Token <device_api_token>
```
`<device_api_token>`-কে আপনার আসল ডিভাইস API টোকেনের মান দিয়ে প্রতিস্থাপন করুন।

<Aside type="caution" title="যেসব পদ্ধতিতে ডিভাইস API টোকেন প্রয়োজন">

নিম্নলিখিত API পদ্ধতিগুলির জন্য অনুমোদনের জন্য **একটি ডিভাইস API টোকেন প্রয়োজন**:
- [`registerDevice`](/bn/developer/api-reference/device-api/#registerdevice)
- [`unregisterDevice`](/bn/developer/api-reference/device-api/#unregisterdevice)
- [`deleteDevice`](/bn/developer/api-reference/device-api/#deletedevice)
- [`setTags`](/bn/developer/api-reference/device-api/#settags)
- [`getTags`](/bn/developer/api-reference/device-api/#gettags)
- [`setBadge`](/bn/developer/api-reference/device-api/#setbadge)
- [`applicationOpen`](/bn/developer/api-reference/device-api/#applicationopen)
- [`pushStat`](/bn/developer/api-reference/device-api/#pushstat)
- [`messageDeliveryEvent`](/bn/developer/api-reference/device-api/#messagedeliveryevent)
- [`registerUser`](/bn/developer/api-reference/user-centric-api/#registeruser)
- [`deleteUser`](/bn/developer/api-reference/user-centric-api/#deleteuser)
- [`postEvent`](/bn/developer/api-reference/user-centric-api/#postevent)
- [`registerEmail`](/bn/developer/api-reference/email-api/#registeremail)
- [`deleteEmail`](/bn/developer/api-reference/email-api/#deleteemail)
- [`setEmailTags`](/bn/developer/api-reference/email-api/#setemailtags)
- [`registerEmailUser`](/bn/developer/api-reference/email-api/#registeremailuser)
- [`getInboxMessages`](/bn/developer/api-reference/message-inbox/#getinboxmessages)
- [`inboxStatus`](/bn/developer/api-reference/message-inbox/#inboxstatus)
</Aside>

## API অ্যাক্সেস টোকেন তৈরি এবং পরিচালনা করুন

আপনি Pushwoosh কন্ট্রোল প্যানেলের **API Access** বিভাগে আপনার API অ্যাক্সেস টোকেনগুলি দেখতে, তৈরি করতে এবং পরিচালনা করতে পারেন। এটি অ্যাক্সেস করতে, **Settings → API Access**-এ যান।
![Pushwoosh ডেমো অ্যাপ টোকেন](/api-reference-api-access-token-1.webp)

ডিফল্টরূপে, প্রতিটি অ্যাকাউন্টে **Pushwoosh Demo App** নামে একটি টোকেন অন্তর্ভুক্ত থাকে, যা একটি সার্ভার টোকেন হিসাবে সেট আপ করা হয়।

### একটি নতুন API অ্যাক্সেস টোকেন তৈরি করুন

একটি নতুন API অ্যাক্সেস টোকেন তৈরি করতে:

1. কন্ট্রোল প্যানেলে **API Access** বিভাগে যান।

2. **Generate New Token**-এ ক্লিক করুন।

3. যে উইন্ডোটি আসবে, সেখানে টোকেনের প্রকার বেছে নিন:

   * [**সার্ভার (Server)**](#server-api-token) বেশিরভাগ API পদ্ধতির জন্য ব্যবহৃত হয় (ডিভাইস API পদ্ধতি বাদে)।

   * [**ডিভাইস (Device)**](#device-api-token) শুধুমাত্র ডিভাইস API পদ্ধতির জন্য ব্যবহৃত হয়।

4. টোকেনের জন্য একটি নাম লিখুন।

5. টোকেন তৈরি করতে **Generate**-এ ক্লিক করুন।

![একটি নতুন টোকেন তৈরি করুন](/api-reference-api-access-token-4.webp)

> **গুরুত্বপূর্ণ:** নিশ্চিত করুন যে টোকেনটিকে আপনার Pushwoosh কন্ট্রোল প্যানেলে সঠিক অ্যাপে অ্যাক্সেস দেওয়া হয়েছে। [আরও জানুন](#edit-token)

নতুন টোকেনটি API অ্যাক্সেস তালিকায় দেখা যাবে। সেখান থেকে, আপনি API অনুরোধে ব্যবহারের জন্য এর মান কপি করতে পারেন বা প্রয়োজন অনুযায়ী এর অ্যাক্সেস অনুমতি পরিচালনা করতে পারেন।

### একটি টোকেন পরিচালনা করুন

একটি বিদ্যমান API টোকেন পরিচালনা করতে, **API Access** বিভাগে টোকেন এন্ট্রির পাশে **তিন-ডট মেনু (⋮)**-তে ক্লিক করুন।

![একটি টোকেন পরিচালনা করুন](/api-reference-api-access-token-2.webp)

নিম্নলিখিত বিকল্পগুলি উপলব্ধ রয়েছে:

#### সমস্ত প্রজেক্টে অ্যাক্সেস দিন

টোকেনটিকে আপনার অ্যাকাউন্টের সমস্ত প্রজেক্টে অ্যাক্সেস দেয়। এটি এটিকে সমস্ত প্রজেক্ট জুড়ে API সম্পূর্ণরূপে ব্যবহার করার অনুমতি দেয়।

<Aside type="tip">
শুধুমাত্র সেই টোকেনগুলিকে সম্পূর্ণ অ্যাক্সেস দিন যাদের এটি প্রয়োজন। এটি আপনার ডেটা সুরক্ষিত রাখতে এবং অ্যাক্সেস নিয়ন্ত্রণে সহায়তা করে।
</Aside>

#### সমস্ত প্রজেক্ট থেকে অ্যাক্সেস প্রত্যাহার করুন

আপনার অ্যাকাউন্টের সমস্ত প্রজেক্ট থেকে টোকেনের অ্যাক্সেস সরিয়ে দেয়। পুনরায় অ্যাক্সেস না দেওয়া পর্যন্ত টোকেনটি আর API ব্যবহার করতে পারবে না।

#### টোকেন সম্পাদনা করুন

**Edit API Token Permissions** স্ক্রিনটি খোলে, যেখানে আপনি করতে পারেন:

* টোকেনের নাম পরিবর্তন করুন

* টোকেনের মান কপি করুন

* তালিকা থেকে প্রজেক্টগুলি নির্বাচন বা অনির্বাচন করে টোকেনটি কোন প্রজেক্টগুলি অ্যাক্সেস করতে পারবে তা বেছে নিন

![একটি টোকেন পরিচালনা করুন](/api-reference-api-access-token-3.webp)

পরিবর্তন করা শেষ হলে, সেগুলি প্রয়োগ করতে **Save**-এ ক্লিক করুন।

<Aside type="tip">
টোকেনগুলিকে শুধুমাত্র সেই প্রজেক্টগুলিতে অ্যাক্সেস দিন যেগুলির তাদের প্রয়োজন। এটি আপনার অ্যাকাউন্ট সুরক্ষিত রাখতে এবং প্রতিটি টোকেন কী করতে পারে তা নিয়ন্ত্রণ করতে সহায়তা করে।
</Aside>

#### টোকেন মুছুন

আপনার অ্যাকাউন্ট থেকে স্থায়ীভাবে টোকেনটি সরিয়ে দেয়।

<Aside type="caution">

এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না। একবার মুছে ফেলা হলে, টোকেনটি পুনরুদ্ধার করা যাবে না। মুছে ফেলার আগে নিশ্চিত করুন যে টোকেনটি আর ব্যবহারে নেই।

</Aside>

## API অনুরোধ অনুমোদন করা

API অনুরোধ অনুমোদন করতে, আপনি যে ধরনের API পদ্ধতি কল করছেন তার উপর ভিত্তি করে সঠিক ধরনের API অ্যাক্সেস টোকেন ব্যবহার করুন:

#### সার্ভার API পদ্ধতির জন্য

অনুরোধের বডির "auth" ফিল্ডে টোকেনটি অন্তর্ভুক্ত করুন:

উদাহরণ:

```json
{
  "request": {
    "application": "XXXXX-XXXXX",
    "auth": "yxoPUlwqm…………pIyEX4H", // আপনার সার্ভার টোকেন এখানে পেস্ট করুন
    "notifications": [{
      "send_date": "now",
      "content": "Hello world"
    }]
  }
}
```

#### ডিভাইস API পদ্ধতির জন্য

**ডিভাইস টোকেন** ব্যবহার করুন। নিম্নলিখিত ফরম্যাট ব্যবহার করে এটি HTTP অনুরোধের হেডারে অন্তর্ভুক্ত করুন:

```
Authorization: Token <device_api_token>
```

`<device_api_token>`-কে আপনার আসল টোকেনের মান দিয়ে প্রতিস্থাপন করুন।
<Aside type="caution">
নিশ্চিত করুন যে টোকেনের প্রকারটি আপনি যে API পদ্ধতি ব্যবহার করছেন তার সাথে মেলে। যদি টোকেনটি প্রয়োজনীয় প্রকারের সাথে না মেলে, তাহলে অনুরোধটি একটি প্রমাণীকরণ ত্রুটি ফেরত দেবে।
</Aside>