C++ অ্যাপে মেসেজ পাওয়া

প্ল্যাটফর্ম বেছে নিন: iOS+ Android ওয়েব Flutter Unity C++


ডাউনস্ট্রিম মেসেজ পেতে, প্রতিটি ক্লায়েন্ট অ্যাপকে firebase::messaging::Listener API-তে মেথড প্রয়োগ করতে হবে।

FCM চালু করুন

আপনার রেজিস্ট্রেশন টোকেন অ্যাক্সেস করতে FCM ব্যবহার করার আগে বা মেসেজ পাওয়ার আগে এটি অবশ্যই ইনিশিয়ালাইজ করতে হবে।

FCM ইনিশিয়ালাইজ করতে, কল করুন ::firebase::messaging::Initialize এবং আপনার ::firebase::App অবজেক্টের পাশাপাশি ::firebase::messaging::Listener ক্লাসের প্রয়োগও এতে যোগ করুন।

MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);

রেজিস্ট্রেশন টোকেন অ্যাক্সেস করা

আপনার অ্যাপ প্রথমবার চালু করার সময়, FCM SDK ক্লায়েন্ট অ্যাপ ইনস্ট্যান্সের জন্য একটি রেজিস্ট্রেশন টোকেন তৈরি করে। আপনি যদি কোনও একটি ডিভাইসকে টার্গেট করতে চান অথবা FCM-এর জন্য ডিভাইস গ্রুপ তৈরি করতে চান, তাহলে আপনাকে এই টোকেন অ্যাক্সেস করতে হবে।

আপনি ::firebase::messaging::Listener::OnTokenReceived ভার্চুয়াল ফাংশনের মাধ্যমে টোকেনের ভ্যালু অ্যাক্সেস করতে পারবেন।

void OnTokenReceived(const char* token) {
  LogMessage("The registration token is `%s`", token);

  // TODO: If necessary send token to application server.
}

মেসেজ পাওয়া ও ম্যানেজ করা

মেসেজ পেতে, আপনার লিসনার ক্লাসকে OnMessage ভার্চুয়াল ফাংশন প্রয়োগ করতে হবে।

ওভাররাইড করুন OnMessage

::firebase::messaging::Listener::OnMessage মেথড ওভাররাইড করে, আপনি প্রাপ্ত মেসেজের উপর ভিত্তি করে অ্যাকশন পারফর্ম করতে এবং মেসেজ ডেটা পেতে পারবেন:

void OnMessage(const ::firebase::messaging::Message& message) {
  LogMessage(TAG, "From: %s", message.from.c_str());
  LogMessage(TAG, "Message ID: %s", message.message_id.c_str());
}

মেসেজ বিভিন্ন ধরনের ইনকামিং ডেটা দেখাতে পারে। সাধারণত, ডেভেলপার শুরু করার পরে অ্যাপে মেসেজ পাঠানো হয়। মেসেজ পাঠানো ইভেন্ট, মেসেজ পাঠানো সংক্রান্ত সমস্যা ইভেন্ট এবং মেসেজ মুছে দেওয়া ইভেন্ট দেখানোর জন্য আপনার অ্যাপেও মেসেজ পাঠানো হয়। Message::message_type ফিল্ড চেক করে এইসব বিশেষ ইভেন্টকে আলাদা করা যেতে পারে।

মেসেজ মুছে দেওয়া হয়েছে

FCM সার্ভার মুলতুবি থাকা মেসেজ মুছে দিলে আপনার অ্যাপে পাঠানো হয়। Message::message_type-এর মূল্য "deleted_messages" হবে। এইসব কারণে মেসেজ মুছে যেতে পারে:

  1. FCM সার্ভারে অনেক বেশি মেসেজ স্টোর করা আছে।

    ডিভাইস অফলাইনে থাকাকালীন কোনও অ্যাপের সার্ভার FCM সার্ভারে একগুচ্ছ লুকানো যায় না এমন মেসেজ পাঠালে এটি হতে পারে।

  2. ডিভাইসটি অনেকদিন কানেক্ট করা হয়নি এবং অ্যাপ সার্ভার সম্প্রতি (গত ৪ সপ্তাহের মধ্যে) সেই ডিভাইসের অ্যাপে মেসেজ পাঠিয়েছে।

    এই কল পাওয়ার পরে অ্যাপ সার্ভারের সাথে অ্যাপকে সম্পূর্ণ সিঙ্ক করার পরামর্শ দেওয়া হয়।