# Pushwoosh-এ ডিভাইস আইডেন্টিফায়ার বোঝা

Pushwoosh-এ রেজিস্টার করা একটি নির্দিষ্ট ডিভাইস শনাক্ত করার দুটি উপায় আছে – একটি হার্ডওয়্যার আইডি (HWID) এবং একটি পুশ টোকেন।

## HWID

HWID (বা হার্ডওয়্যার আইডি) হল একটি কী আইডেন্টিফায়ার যা Pushwoosh SDK দ্বারা ডিভাইসে বরাদ্দ করা হয়।

#### Android HWID

অ্যান্ড্রয়েড ডিভাইসের জন্য, HWID হল অক্ষর এবং সংখ্যার একটি র‍্যান্ডম সেট যা ডিভাইসে ইনস্টল করা Pushwoosh SDK সহ প্রথম অ্যাপ দ্বারা তৈরি করা হয়। এটি পরে Pushwoosh SDK থাকা অন্যান্য অ্যাপের সাথে শেয়ার করা হয় যাতে এই ধরনের সমস্ত অ্যাপের একই HWID থাকে।

তবে, যদি একজন ব্যবহারকারী Pushwoosh SDK সহ সমস্ত অ্যাপ মুছে ফেলেন এবং তারপরে কিছু পুনরায় ইনস্টল করেন, তাহলে একটি নতুন HWID আবার তৈরি হবে।

Android HWID উদাহরণ: `5dcaed99-e1e0-44dc-bde2-b96188b99e9e`

#### iOS HWID

iOS ডিভাইসের জন্য, IDFV ([Identifier for Vendor](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor)) ডিভাইসের HWID হিসাবে ব্যবহৃত হয়। যতক্ষণ পর্যন্ত ডিভাইসে একই ভেন্ডরের অন্তত একটি অ্যাপ ইনস্টল করা থাকবে, ততক্ষণ এটি পরিবর্তন হবে না।

iOS HWID উদাহরণ (শুধুমাত্র বড় হাতের অক্ষর!): `CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93`

## পুশ টোকেন

পুশ টোকেন (ডিভাইস টোকেন) হল অ্যাপ-ডিভাইস কম্বিনেশনের জন্য একটি ইউনিক কী যা Apple বা Google পুশ নোটিফিকেশন গেটওয়ে দ্বারা জারি করা হয়। এটি গেটওয়ে এবং পুশ নোটিফিকেশন প্রদানকারীদের বার্তা রুট করতে এবং নোটিফিকেশনটি যে ইউনিক অ্যাপ-ডিভাইস কম্বিনেশনের জন্য উদ্দিষ্ট, সেখানে ডেলিভারি নিশ্চিত করতে সাহায্য করে।

#### iOS পুশ টোকেন

iOS ডিভাইস পুশ টোকেন হল 64টি হেক্সাডেসিমেল প্রতীকের স্ট্রিং। iOS পুশ টোকেন উদাহরণ: `03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f`

<Aside type="caution">
নিশ্চিত করুন যে আপনার API অনুরোধে নির্দিষ্ট ডিভাইস টার্গেট করার সময় ব্যবহৃত iOS পুশ টোকেনগুলি **ছোট হাতের অক্ষরে (lower case)** থাকে।
</Aside>

#### Android পুশ টোকেন

অ্যান্ড্রয়েড ডিভাইস পুশ টোকেনগুলির দৈর্ঘ্য ভিন্ন হতে পারে (সাধারণত 255 অক্ষরের নিচে) এবং সাধারণত APA91b… দিয়ে শুরু হয়; তবে, এটিতে একটি কোলন-সেপারেটেড প্রিফিক্সও থাকতে পারে। অ্যান্ড্রয়েড পুশ টোকেন উদাহরণ: `APA91bFoi3lMMre9G3XzR1LrF4ZT82_15MsMdEICogXSLB8-MrdkRuRQFwNI5u8Dh0cI90ABD3BOKnxkEla8cGdisbDHl5cVIkZah5QUhSAxzx4Roa7b4xy9tvx9iNSYw-eXBYYd8k1XKf8Q_Qq1X9-x-U-Y79vdPq`

<Aside type="caution">
নির্দিষ্ট ডিভাইস টার্গেট করার জন্য র' ডিভাইস টোকেন ব্যবহার করা সবচেয়ে নির্ভরযোগ্য উপায় নয় কারণ FCM পুশ টোকেনগুলি সময়ে সময়ে পরিবর্তিত হয়, এবং এটি কত ঘন ঘন ঘটে তা বলা কঠিন।
</Aside>

## একটি ডিভাইস থেকে লগ, HWID, এবং পুশ টোকেন সংগ্রহ করা

### iOS

প্রথমে, যদি আপনার অ্যাপের সোর্স কোডে অ্যাক্সেস থাকে, তাহলে নিশ্চিত করুন যে আপনার অ্যাপে `Pushwoosh_LOG_LEVEL` `VERBOSE`-এ সেট করা আছে। এটি করতে, আপনার `Info.plist` ফাইলে `Pushwoosh_LOG_LEVEL` স্ট্রিং কী পরীক্ষা করুন। যদি না থাকে, তাহলে পরবর্তী ধাপে যান। এই কী-এর জন্য সম্ভাব্য মানগুলি হল:

*   `NONE` - SDK থেকে কোনো লগ নেই
*   `ERROR` - কনসোলে শুধুমাত্র ত্রুটি প্রদর্শন করুন
*   `WARNING` - সতর্কতাও প্রদর্শন করুন
*   `INFO` - তথ্যমূলক বার্তা যোগ করুন
*   `DEBUG` - ডিবাগ তথ্য যোগ করুন
*   `VERBOSE` - SDK থেকে সমস্ত লগ

`VERBOSE` কী মান Pushwoosh SDK-কে রেজিস্ট্রেশন ক্রিয়া সম্পর্কিত গুরুত্বপূর্ণ তথ্য প্রদর্শন করতে দেয়।

২. এরপর, ডিভাইসটি আপনার Mac-এর সাথে সংযুক্ত করুন এবং Xcode চালু করুন। Window->Device and Simulators-এ যান।

<img src="/pushwoosh-knowledge-hub-device-identifiers-1.webp" alt="Xcode ডিভাইস এবং সিমুলেটর উইন্ডো একটি সংযুক্ত iOS ডিভাইস দেখাচ্ছে"/>

৩. খোলা উইন্ডোতে, আপনার সংযুক্ত ডিভাইসটি নির্বাচন করুন এবং ডিভাইস কনসোল দেখতে নীচের বাম দিকের আপ-ট্রায়াঙ্গেল বোতামে ক্লিক করুন:

<img src="/pushwoosh-knowledge-hub-device-identifiers-2.webp" alt="Xcode ডিভাইস কনসোল ভিউ ডিভাইসের লগ দেখাচ্ছে এবং আপ-ট্রায়াঙ্গেল বোতামটি হাইলাইট করা হয়েছে"/>

Xcode 9.3 সংস্করণ থেকে, ডিভাইস কনসোল লগ পাওয়ার প্রক্রিয়াটি কিছুটা পরিবর্তিত হয়েছে। আপনাকে যা করতে হবে তা হল আপনার Launchpad-এ গিয়ে "Console" অ্যাপ্লিকেশনটি শুরু করা। বাম সাইডবারে আপনার ডিভাইসটি নির্বাচন করুন। এইটুকুই!

<img src="/pushwoosh-knowledge-hub-device-identifiers-3.webp" alt="macOS কনসোল অ্যাপ্লিকেশন বাম সাইডবারে নির্বাচিত একটি সংযুক্ত iOS ডিভাইস দেখাচ্ছে এবং ডিভাইসের লগগুলি প্রদর্শিত হচ্ছে"/>

৪. এরপর, ডিভাইসে আপনার অ্যাপটি শুরু করুন এবং ডায়ালগ উইন্ডোর জন্য অপেক্ষা করুন। আপনার অ্যাপের জন্য পুশ নোটিফিকেশন অনুমতি দিন।

৫. এই পদক্ষেপগুলির পরে, কনসোল উইন্ডো থেকে সম্পূর্ণ ডিভাইস লগ নির্বাচন করুন এবং এটি যেকোনো টেক্সট এডিটরে কপি করুন।

[`/registerDevice`](/bn/developer/api-reference/device-api/) Pushwoosh API অনুরোধটি আপনি খুঁজছেন:

<img src="/pushwoosh-knowledge-hub-device-identifiers-4.webp" alt="ডিভাইস কনসোল লগ registerDevice API অনুরোধ দেখাচ্ছে যেখানে hwid এবং পুশ টোকেন প্যারামিটারগুলি দৃশ্যমান"/>

যদি ডিভাইসটি সঠিকভাবে রেজিস্টার করা হয়, তাহলে এই অনুরোধে "hwid" এবং "push token" মান সহ নিম্নলিখিত প্যারামিটারগুলি থাকতে হবে:

```txt title="উদাহরণ"
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"gateway":"production","jailbroken":0,"app_version":"1.9","application":"D868A-C13C1","sounds":["bubble.wav"],"device_type":1,"userId":"1457691684303547","language":"en","hwid":"FBCA07FE-05EE-4770-B4BA-AB6737BC1A98","package":"com.pushwoosh.pushon","timezone":"25200","push_token":"ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7","os_version":"11.2.2","v":"5.5.1","device_model":"iPhone7,1"}}
| Status: "200 no error"
| Response: {"status_code":200,"status_message":"OK","response":{"iosCategories":[{"categoryId":0,"buttons":[{"id":"33389","label":"test","type":"0","startApplication":0},{"id":"1233","label":"ajhdkj","type":"1","startApplication":0}]}]}}
x
```

আপনার ডিভাইসের পুশ টোকেন সহ নোটিশটিও উপস্থিত থাকা উচিত:

```
<Notice>: [PW] [I] -[PWPushNotificationsManagerCommon] Registered for push notifications: ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7
```

### Android

১. যদি আপনার অ্যাপের সোর্স কোডে অ্যাক্সেস থাকে, তাহলে নিশ্চিত করুন যে Pushwoosh লগ লেভেল `NOISE`-এ সেট করা আছে। এটি করতে, `AndroidManifest.xml`-এ `NOISE` মান সহ `com.pushwoosh.log_level` মেটা ডেটা যোগ করুন।

২. এরপর, আপনার Mac/PC-তে Android Studio চালান এবং Tools -> Android -> Android Device Monitor-এ যান।

<img src="/pushwoosh-knowledge-hub-device-identifiers-5.webp" alt="অ্যান্ড্রয়েড স্টুডিও অ্যান্ড্রয়েড ডিভাইস মনিটর উইন্ডো একটি সংযুক্ত অ্যান্ড্রয়েড ডিভাইস দেখাচ্ছে"/>

৩. আপনার ডিভাইসটি Mac/PC-এর সাথে সংযুক্ত করুন এবং অ্যাপটি চালু করুন। প্রায় ৩০ সেকেন্ড অপেক্ষা করুন, কনসোল উইন্ডো থেকে সম্পূর্ণ ডিভাইস লগ নির্বাচন করুন এবং এটি যেকোনো টেক্সট এডিটরে কপি করুন।

<img src="/pushwoosh-knowledge-hub-device-identifiers-6.webp" alt="অ্যান্ড্রয়েড ডিভাইস মনিটর কনসোল লগ উইন্ডো ডিভাইসের লগ দেখাচ্ছে যেখানে registerDevice অনুরোধ দৃশ্যমান"/>

অনুগ্রহ করে মনে রাখবেন যে Android Studio-র সর্বশেষ সংস্করণগুলিতে, আপনি ডিভাইস কনসোল লগ পেতে Logcat টুলটিও ব্যবহার করতে পারেন। Android Studio চালান এবং View -> Tool Windows -> Logcat-এ যান:

<img src="/pushwoosh-knowledge-hub-device-identifiers-7.webp" alt="অ্যান্ড্রয়েড স্টুডিও ইন্টারফেস Logcat টুল উইন্ডো দেখাচ্ছে যা View মেনু থেকে অ্যাক্সেস করা হয়েছে"/>

এর পরে, আপনি Logcat উইন্ডোতে ডিভাইস লগ খুঁজে পেতে পারেন:

<img src="/pushwoosh-knowledge-hub-device-identifiers-8.webp" alt="অ্যান্ড্রয়েড স্টুডিও Logcat উইন্ডো ডিভাইসের লগ প্রদর্শন করছে যেখানে registerDevice API অনুরোধ দৃশ্যমান"/>

নীচে উদাহরণ দেওয়া হল, ডিভাইস কনসোল লগের মধ্যে Pushwoosh /registerDevice API অনুরোধটি কেমন দেখায়:

<img src="/pushwoosh-knowledge-hub-device-identifiers-9.webp" alt="অ্যান্ড্রয়েড ডিভাইস কনসোল লগ registerDevice API অনুরোধ দেখাচ্ছে যেখানে hwid এবং পুশ টোকেন প্যারামিটারগুলি হাইলাইট করা হয়েছে"/>

অনুরোধে "hwid" এবং "push token" প্যারামিটারের মান খুঁজুন:

```txt title="উদাহরণ"
[RequestManager]
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"application":"D868A-C13C1","hwid":"fc79efabee7649ec","v":"5.5.2","device_type":3,"userId":"fc79efabee7649ec","device_name":"Phone","language":"en","timezone":25200,"android_package":"com.pushwoosh.pushon","jailbroken":0,"device_model":"Sony F8332","os_version":"8.0.0","idfa":"d43ad490-4e6a-48a8-b8b9-f20b76fbf07b","app_version":"1.5","push_token":"dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_","sounds":"[]"}}
| Response: {"status_code":200,"status_message":"OK","response":null}
x
[RequestManager] registerDevice response success
```

পুশ টোকেন ডিভাইস রেজিস্ট্রেশন নোটিশে অন্তর্ভুক্ত থাকে:

```
I/Pushwoosh(12733): [DeviceRegistrar] Registered for pushes: dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_
03-30 14:45:10.539: D/PushOn(12733): Registered for push notifications
```

### Chrome (ডেস্কটপ)

১. আপনার ওয়েবসাইটে যান।

২. পৃষ্ঠার যেকোনো জায়গায় রাইট-ক্লিক করুন এবং "Inspect" চাপুন।

<img src="/pushwoosh-knowledge-hub-device-identifiers-10.webp" alt="Chrome ব্রাউজার ডেভেলপার টুলস খোলা আছে এবং Inspect Element কনটেক্সট মেনু অপশনটি দৃশ্যমান"/>

৩. খোলা উইন্ডোতে, "Application" ট্যাবে যান।

৪. তারপর, বাম সাইডবারে, IndexedDB -> Pushwoosh\_SDK\_Store -> keyValue নির্বাচন করুন। এখানে, HWID এবং পুশ টোকেন প্যারামিটারগুলি খুঁজুন।

<img src="/pushwoosh-knowledge-hub-device-identifiers-11.webp" alt="Chrome ডেভেলপার টুলস অ্যাপ্লিকেশন ট্যাব IndexedDB দেখাচ্ছে যেখানে Pushwoosh SDK স্টোর এবং keyValue-তে HWID এবং পুশ টোকেন রয়েছে"/>

### Chrome (মোবাইল)

১. আপনার মোবাইল ডিভাইসটি কম্পিউটারের সাথে সংযুক্ত করুন।

২. আপনার ডেস্কটপ Chrome-এ chrome://inspect/#devices-এ যান।

৩. আপনার মোবাইল Chrome-এ আপনার ওয়েবসাইটটি খুলুন।

৪. একবার আপনার মোবাইল Chrome-এ ওয়েবসাইটটি খোলা হলে, আপনি ডেস্কটপ Chrome পৃষ্ঠার মধ্যে সংশ্লিষ্ট পৃষ্ঠাটি দেখতে পাবেন। অনুগ্রহ করে নীচের স্ক্রিনশটটি দেখুন:

<img src="/pushwoosh-knowledge-hub-device-identifiers-12.webp" alt="Chrome রিমোট ডিবাগিং পেজ একটি সংযুক্ত মোবাইল ডিভাইস দেখাচ্ছে এবং Inspect বোতামটি হাইলাইট করা হয়েছে"/>

৫. উপরের স্ক্রিনশটে হাইলাইট করা "Inspect" বোতামটি চাপুন।

৬. নিম্নলিখিত উইন্ডোটি আপনার ডেস্কটপ Chrome-এ প্রদর্শিত হবে। সেখানে, "Application" ট্যাবের মধ্যে, IndexedDB -> PUSHWOOSH\_SDK\_STORE খুলুন। এর পরে, keyValue ক্লিক করুন এবং API\_PARAMS বিভাগটি খুলুন:

<img src="/pushwoosh-knowledge-hub-device-identifiers-13.webp" alt="Chrome ডেভেলপার টুলস অ্যাপ্লিকেশন ট্যাব IndexedDB PUSHWOOSH SDK STORE দেখাচ্ছে যেখানে API_PARAMS বিভাগে hwid এবং পুশ টোকেন রয়েছে"/>

API\_PARAMS বিভাগে, আপনি "hwid" এবং "push token" প্যারামিটার এবং তাদের মানগুলি পাবেন।

### Safari

১. আপনার ওয়েবসাইটে যান।
২. পৃষ্ঠার যেকোনো জায়গায় রাইট-ক্লিক করুন এবং Inspect Element নির্বাচন করুন।
৩. Storage ট্যাব -> Indexed Databases -> PUSHWOOSH\_SDK\_STORE -> keyValue-তে যান।
৪. API\_PARAMS প্রসারিত করুন এবং এখানে "hwid" এবং "push token" মানগুলি খুঁজুন।

<img src="/pushwoosh-knowledge-hub-device-identifiers-14.webp" alt="Safari ডেভেলপার টুলস স্টোরেজ ট্যাব Indexed Databases দেখাচ্ছে যেখানে PUSHWOOSH SDK STORE keyValue-তে API_PARAMS এবং তার মধ্যে hwid ও পুশ টোকেন রয়েছে"/>