# Outsystems

## Pushwoosh প্লাগইন ইনস্টল করা

[OutSystems Forge](https://www.outsystems.com/forge/component-overview/1556/pushwoosh-plugin) থেকে Pushwoosh প্লাগইন ইনস্টল করে শুরু করুন। এটি করার দ্রুততম উপায় হলো আপনার ডেভেলপমেন্ট এনভায়রনমেন্টের OutSystems ট্যাবে গিয়ে সেখান থেকে এটি ইনস্টল করা।

### Pushwoosh কনফিগার করা

আপনি যে প্ল্যাটফর্মগুলো সমর্থন করবেন, তার প্রতিটির জন্য আপনাকে Pushwoosh কনফিগার করতে হবে। আপনার কনফিগারেশন সম্পন্ন হয়ে গেলে, আপনি Pushwoosh থেকে একটি অ্যাপ্লিকেশন কোড (Application Code) পাবেন যা আপনার প্লাগইনের সাথে ব্যবহৃত হবে।

#### iOS-এর জন্য

কীভাবে [iOS-এর জন্য Pushwoosh কনফিগার করতে হয়](/bn/developer/first-steps/connect-messaging-services/ios-configuration/ios-platform-configuration/) তা জানুন।

#### Android-এর জন্য

কীভাবে [Android-এর জন্য Pushwoosh কনফিগার করতে হয়](/bn/developer/first-steps/connect-messaging-services/android-configuration/android-firebase-configuration/) তা জানুন।

### আপনার অ্যাপ্লিকেশনে Pushwoosh প্লাগইন যোগ করা

১. আপনার অ্যাপ্লিকেশনে, Pushwoosh প্লাগইনের একটি রেফারেন্স যোগ করতে "Manage Dependencies…" ব্যবহার করুন।

<img src="/outsystems.webp" alt=""/>

২. "PushwooshNotifications" ব্লকটি যোগ করুন:

   - "Layout" ব্লকে, যদি আপনার অ্যাপ্লিকেশনের কোনো লগইন না থাকে
   - "LayoutBlank" ব্লকে, যদি আপনার অ্যাপ্লিকেশনের লগইন থাকে

   "PushwooshNotifications" ব্লক যোগ করার সময়, এটিকে প্লেসহোল্ডারের ভিতরে যোগ করা থেকে বিরত থাকুন, কারণ কিছু প্লেসহোল্ডার শুধুমাত্র ডিজাইন টাইমে উপলব্ধ থাকে এবং রানটাইমে Pushwoosh কাজ করবে না।

৩. PushwooshNotifications-এ নিম্নলিখিত প্যারামিটারগুলো সেট করুন:

   - **PushwooshApplicationCode:** Pushwoosh-এ অ্যাপ্লিকেশন তৈরি করার পর আপনি যে Pushwoosh কোডটি পেয়েছেন।
   - **FCMSenderId:** Android কনফিগার করার সময় আপনি যে শনাক্তকরণ নম্বরটি পেয়েছেন। আপনার অ্যাপ্লিকেশনটি শুধুমাত্র iOS-এর জন্য উপলব্ধ হলে আপনি এটি খালি রাখতে পারেন।
   - **NotificationReceivedEvent (ঐচ্ছিক):** একটি ইভেন্ট যা অ্যাপ্লিকেশনটি ফোরগ্রাউন্ডে থাকা অবস্থায় একটি নোটিফিকেশন পেলে কল করা হয়।
   - **NotificationOpenedEvent (ঐচ্ছিক):** একটি ইভেন্ট যা কোনো ব্যবহারকারী তাদের ডিভাইসে একটি নোটিফিকেশনে ক্লিক করলে কল করা হয়।

আপনি যদি আপনার Android অ্যাপে Pushwoosh প্লাগইন ব্যবহার করেন, তাহলে নিম্নলিখিত কাজগুলো করুন:

১. Firebase থেকে [`google-services.json` ফাইলটি সংগ্রহ করুন](https://support.google.com/firebase/answer/7015592)। Google services-এর প্যাকেজের নাম অবশ্যই তৈরি করা OutSystems অ্যাপ্লিকেশনের অ্যাপ আইডেন্টিফায়ারের সাথে মিলতে হবে।
২. রুটে `google-services.json` ফাইলটি সহ একটি জিপ ফাইল তৈরি করুন।
৩. পূর্ববর্তী ধাপ থেকে "google-services.zip" ফাইলটি আপনার OutSystems অ্যাপ্লিকেশনে আপলোড করুন এবং নিশ্চিত করুন যে:
   - "Name" হিসেবে "google-services.zip" সেট করুন
   - "Deploy to Target Directory" হিসেবে "google-services" সেট করুন

<img src="/outsystems2.webp" alt=""/>

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

<img src="/outsystems3.webp" alt=""/>


"DoLogin" অ্যাকশনের পরে ডিভাইস রেজিস্টার করার জন্য কোডটি যোগ করুন। এটি দেখতে অনেকটা এইরকম হবে:

<img src="/outsystems4.webp" alt=""/>

যদি আপনার অ্যাপ্লিকেশনের কোনো লগইন না থাকে, তাহলে আপনি এই কোডটি `PushwooshNotifications` ব্লকের `OnInitializeOver` ইভেন্টে যোগ করতে পারেন।

<img src="/outsystems5.webp" alt=""/>

এই ইভেন্ট হ্যান্ডলারে, `RegisterDevice` অ্যাকশনটি কল করুন।

<img src="/outsystems6.webp" alt=""/>

আপনি যদি একটি ডেভেলপার সার্টিফিকেট ব্যবহার করে একটি iOS মোবাইল অ্যাপ তৈরি করেন, তাহলে আপনাকে আপনার OutSystems মডিউলের Extensibility Configurations প্রপার্টিতে একটি প্রেফারেন্স যোগ করতে হবে:

```json
{
  "preferences": {
    "global": [
      {
        "name": "aps-environment",
        "value": "development"
      }
    ]
  }
}
```

<img src="/outsystems7.webp" alt=""/>

এই প্রেফারেন্সটি আপনার এনটাইটেলমেন্টস (entitlements) ফাইলে যোগ করা হবে ([Apple Developer ডকুমেন্টেশনে](https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html) এনটাইটেলমেন্টস সম্পর্কে আরও জানুন)।

আপনি যদি একটি প্রোডাকশন সার্টিফিকেট ব্যবহার করে একটি iOS মোবাইল অ্যাপ তৈরি করেন, তাহলে আপনাকে কোনো প্রেফারেন্স নির্দিষ্ট করতে হবে না, কারণ OutSystems-এ `aps-environment` প্রেফারেন্সের ডিফল্ট মান হলো `production`।

আপনার অ্যাপ্লিকেশনটি এখন পুশ নোটিফিকেশন পাওয়ার জন্য প্রস্তুত। [আপনার মোবাইল অ্যাপটি কনফিগার এবং জেনারেট করুন](https://success.outsystems.com/documentation/10/delivering_mobile_apps/generate_and_distribute_your_mobile_app/) এবং এটি আপনার ডিভাইসে ইনস্টল করুন। এই পর্যায়ে, আপনি আপনার অ্যাপে নোটিফিকেশন পাঠাতে এবং সবকিছু সঠিকভাবে কনফিগার করা হয়েছে কিনা তা নিশ্চিত করতে Pushwoosh ইন্টারফেস ব্যবহার করতে পারেন। মনে রাখবেন, অ্যাপটি চালু থাকলে আপনি কোনো নোটিফিকেশন দেখতে পাবেন না। পরিবর্তে, `NotificationReceivedEvent` ইভেন্টটি অবিলম্বে উত্থাপিত হয়।

### নোটিফিকেশন পাঠানো

নোটিফিকেশন পাঠাতে, আপনার একটি Pushwoosh [API Access Token](/bn/developer/api-reference/api-access-token/) প্রয়োজন। একটি তৈরি করতে Pushwoosh কনসোলে যান, "API Access"-এ যান এবং "Generate new access token"-এ ক্লিক করুন।

<img src="/outsystems8.webp" alt=""/>

সব ডিভাইসে নোটিফিকেশন পাঠাতে, `SendPushNotificationToAll` অ্যাকশনটি ব্যবহার করুন।

<img src="/outsystems9.webp" alt=""/>

এই অ্যাকশনটি নিম্নলিখিত প্যারামিটারগুলো গ্রহণ করে:

- **PushwooshApplicationCode:** Pushwoosh-এ অ্যাপ্লিকেশন তৈরি করার পর আপনি যে Pushwoosh কোডটি পেয়েছেন।
- **ApiAccessToken:** পূর্বে প্রাপ্ত Pushwoosh API Access Token।
- **Message:** আপনি যে মেসেজ টেক্সট পাঠাতে চান।
- **Badge:** একটি সংখ্যা যা iOS অ্যাপ্লিকেশন আইকনে প্রদর্শিত হয়।
- **Deeplink:** নোটিফিকেশনের সাথে পাঠানোর জন্য একটি ডিপ লিঙ্ক। [কীভাবে ডিপ লিঙ্ক সংজ্ঞায়িত করতে হয়](https://success.outsystems.com/documentation/how_to_guides/development/how_to_define_mobile_app_deep_links/) তা জানুন।

উদাহরণস্বরূপ, আপনি যদি "PushTest" নামক একটি অ্যাপ্লিকেশনে "Hello from OutSystems" মেসেজটি পাঠাতে এই অ্যাকশনটি ব্যবহার করেন, তাহলে iOS-এ নিম্নলিখিতটি দেখানো হবে:

<img src="/outsystems10.webp" alt=""/>

### অতিরিক্ত তথ্য

- যদি আপনার অ্যাপটি চালু থাকে, তাহলে নোটিফিকেশনটি ডিভাইসে দেখা যায় না। পরিবর্তে, এটি অ্যাপে পাঠানো হয় এবং `NotificationReceivedEvent` ইভেন্টটি উত্থাপিত হয়। সেই পরিস্থিতিতে আপনি অ্যাপটিকে কী করতে চান তা আপনাকে সংজ্ঞায়িত করতে হবে।
- পুশ নোটিফিকেশন সক্রিয় হতে কিছুটা সময় লাগতে পারে। যদি আপনি নোটিফিকেশনগুলো আসতে না দেখেন, তাহলে আরও সমস্যা সমাধানের আগে কয়েক মিনিট অপেক্ষা করুন।

## আমাদের সাথে আপনার মতামত শেয়ার করুন

আপনার মতামত আমাদের একটি উন্নত অভিজ্ঞতা তৈরি করতে সাহায্য করে, তাই SDK ইন্টিগ্রেশন প্রক্রিয়ার সময় আপনার কোনো সমস্যা হলে আমরা আপনার কাছ থেকে শুনতে চাই। যদি আপনি কোনো অসুবিধার সম্মুখীন হন, তাহলে অনুগ্রহ করে [এই ফর্মের মাধ্যমে](https://docs.google.com/forms/d/e/1FAIpQLSd_0b8jwn-V_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform) আমাদের সাথে আপনার ভাবনা শেয়ার করতে দ্বিধা করবেন না।