OAuth 2 অ্যাক্সেস টোকেন সহ FCM HTTP v1 API ব্যবহার করুন

1. ভূমিকা

FCM লিগ্যাসি API-এর তুলনায়, FCM HTTP v1 API স্বল্পস্থায়ী অ্যাক্সেস টোকেন ব্যবহার করে আরও নিরাপদ অনুমোদন মডেল প্রদান করে। FCM v1 API-এর জন্য অ্যাক্সেস টোকেন তৈরির ধাপগুলি লিগ্যাসি API-এর ধাপগুলি থেকে উল্লেখযোগ্যভাবে আলাদা।

এই কোডল্যাবটি আপনাকে FCM HTTP v1 API ব্যবহার করে একটি অ্যান্ড্রয়েড অ্যাপে পুশ বিজ্ঞপ্তি পাঠানো সক্ষম করার জন্য ক্লায়েন্ট এবং সার্ভার সাইড সেটআপের প্রক্রিয়াটি দেখাবে। এটি v1 API এর জন্য ক্রেডেনশিয়াল জেনারেশনের মূল ধাপটি তুলে ধরে।

আরও তথ্য এখানে পাওয়া যাবে:

পূর্বশর্ত

  • জাভা এবং অ্যান্ড্রয়েড ডেভেলপমেন্ট সম্পর্কে প্রাথমিক ধারণা

তুমি কি শিখবে

  • FCM HTTP v1 API ব্যবহার করে আপনার অ্যান্ড্রয়েড অ্যাপে পুশ বিজ্ঞপ্তি পাঠানো সক্ষম করার জন্য ক্লায়েন্ট এবং সার্ভার সাইড সেটআপের বিস্তারিত ধাপগুলি
  • পরিষেবা অ্যাকাউন্ট ব্যবহার করে HTTP v1 API-এর জন্য ক্রেডেনশিয়াল জেনারেশন
  • HTTP v1 API এর মাধ্যমে পরীক্ষামূলক বার্তা পাঠানো হচ্ছে

তোমার যা লাগবে

অ্যান্ড্রয়েড স্টুডিওর সর্বশেষ স্থিতিশীল সংস্করণ

নিম্নলিখিত ডিভাইসগুলির মধ্যে একটি:

আপনার পছন্দের একটি জাভা ডেভেলপমেন্ট এনভায়রনমেন্ট অথবা কোড এডিটর

২. ফায়ারবেস প্রকল্প এবং অ্যান্ড্রয়েড অ্যাপ সেটআপ

কোড ল্যাব শেষে, আপনি Firebase Cloud Messaging ব্যবহার করে আপনার অ্যাপে বার্তা পাঠাতে পারবেন। এটি করার আগে, আপনাকে একটি Firebase প্রকল্প তৈরি করতে হবে। এই কোডল্যাবটি FCM-এর সাথে একীভূত করার জন্য নমুনা কোড ধারণকারী একটি Android অ্যাপও প্রদান করে।

ফায়ারবেস প্রকল্প সেটআপ

অ্যান্ড্রয়েড অ্যাপ সেটআপ

এই কোডল্যাবে দেওয়া নমুনা অ্যান্ড্রয়েড অ্যাপটি ইতিমধ্যেই FCM-এর সাথে ইন্টিগ্রেটেড। শুরু করার পর, এটি FCM সার্ভারে নিবন্ধন করবে এবং একটি টপিকে সাবস্ক্রাইব করবে। এই কোডল্যাবের পরবর্তী ধাপগুলিতে আপনি টপিকে একটি টপিক বার্তা পাঠাবেন এবং আপনার অ্যাপটি তা গ্রহণ করবে।

৩. অ্যাপ সার্ভার সেট আপ করুন

এখন আপনার অ্যাপ সেট আপ হয়ে গেছে, FCM v1 API ব্যবহার করে আপনার অ্যাপে বার্তা পাঠানোর জন্য আপনাকে একটি সার্ভার-সাইড কোড নমুনা ডাউনলোড করতে হবে। এই কোডটি একটি অ্যাক্সেস টোকেন তৈরি করতে API শংসাপত্রগুলি (পরবর্তী বিভাগে বর্ণিত) লোড করে। তারপর এটি FCM টপিক মেসেজিং ব্যবহার করে আপনার অ্যাপে একটি বার্তা পাঠায়।

  • Github প্রজেক্ট ডাউনলোড করে স্টার্টার সার্ভার কোড ইমপোর্ট করুন। "মেসেজিং" প্রজেক্টটি একটি গ্রেডল-ভিত্তিক জাভা প্রজেক্ট যা ফায়ারবেস-অ্যাডমিন SDK এর উপর নির্ভরশীল, যা বার্তা পাঠানোর কার্যকারিতা প্রদান করে।

FCM-এর সাথে একটি অ্যাপ সার্ভার কীভাবে কাজ করবে সে সম্পর্কে আরও বিশদ বিবরণ আপনার সার্ভার পরিবেশ এবং FCM নথিতে পাওয়া যাবে।

৪. v1 শংসাপত্র পান

OAuth2 নিরাপত্তা মডেল অনুসারে FCM HTTP v1 API স্বল্পস্থায়ী অ্যাক্সেস টোকেন ব্যবহার করে। FCM লিগ্যাসি API-তে ব্যবহৃত স্ট্যাটিক API কী-এর তুলনায়, স্বল্পস্থায়ী অ্যাক্সেস টোকেনটি ক্রেডেনশিয়াল লিক হওয়ার ঝুঁকি কম। এই বিভাগে API কল করার জন্য ব্যবহৃত অ্যাক্সেস টোকেন তৈরি করার জন্য একটি ক্রেডেনশিয়াল তৈরির পদক্ষেপগুলি বিশদভাবে বর্ণনা করা হয়েছে।

  1. Firebase অ্যাডমিন SDK কে FCM API গুলিতে কল অনুমোদন করার জন্য একটি Firebase পরিষেবা অ্যাকাউন্ট সেট আপ করুন। Firebase কনসোলে Project Settings খুলুন এবং Service accounts ট্যাব নির্বাচন করুন। কনফিগারেশন স্নিপেট ডাউনলোড করতে নতুন ব্যক্তিগত কী তৈরি করুন ক্লিক করুন। প্রজেক্ট সেটিংস পৃষ্ঠার সার্ভিস অ্যাকাউন্ট কম্পোনেন্টের অ্যাডমিন SDK কনফিগারেশন স্নিপেট হাইলাইট করে একটি ক্রপ করা স্ক্রিনশট।
  2. ডাউনলোড করা Github প্রজেক্টে, ডাউনলোড করা ফাইলটির নাম পরিবর্তন করে service-account.json রাখুন এবং এটিকে প্রজেক্টের messaging/ path এ কপি করুন।
  3. Messaging.java ক্লাসের getAccessToken() পদ্ধতি (নীচে দেখানো হয়েছে) একটি OAuth2 টোকেন তৈরি করে যা ১ ঘন্টার জন্য বৈধ।
private static String getAccessToken() throws IOException {
  GoogleCredentials googleCredentials = GoogleCredentials.fromStream(new FileInputStream("service-account.json")).createScoped(Arrays.asList(SCOPES));
  googleCredentials.refresh();
  return googleCredentials.getAccessToken().getTokenValue();
}
  1. প্রধান পদ্ধতিটি পরিবর্তন করে নিম্নলিখিত লাইনটি যোগ করুন:
public static void main(String[] args) throws IOException {
  System.out.println(getAccessToken());
  ...
}
  1. আপনার টার্মিনালে মেসেজিং/প্রজেক্ট ডিরেক্টরিতে যান এবং টাইপ করুন:
./gradlew run -Pmessage=common-message

OAuth2 টোকেন প্রিন্ট করতে।

আরও তথ্যের জন্য অনুরোধ প্রেরণের অনুমোদন দেওয়া পড়ুন

৫. REST API ব্যবহার করে একটি বার্তা পাঠান

এখন আপনি HTTP v1 API এর মাধ্যমে একটি বার্তা পাঠাতে প্রস্তুত। নীচের পদক্ষেপগুলি অনুসরণ করুন:

  • HTTP অনুরোধের শিরোনামে অ্যাক্সেস টোকেন যোগ করতে:
  • Authorization: Bearer <access_token> ফর্ম্যাটে Authorization হেডারের মান হিসেবে টোকেনটি যোগ করুন।
  • কার্ল ব্যবহার করে FCM v1 API তে একটি HTTP অনুরোধ করুন:
curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $OAuth2_token" -H "X-GFE-SSL: yes" -d  "{\"message\": {\"topic\": \"$topic_name\", \"notification\": {\"title\": \"breaking news\", \"body\": \"This is breaking news\"}}}" https://fcm.googleapis.com/v1/projects/[PROJECT_NAME]/messages:send

উপরের $topic_name টি Firebase প্রজেক্ট এবং Android অ্যাপ সেটআপে উল্লিখিত Android অ্যাপ কোডে পাওয়া যাবে। ডিফল্টরূপে এটি "weather"

  • একটি বার্তা সফলভাবে বিতরণ করার পরে, আপনার স্ক্রিনে নীচের ছবির মতো একটি বিজ্ঞপ্তি পপ আপ দেখতে হবে:

54ae84ece22202cd.png সম্পর্কে

6. উপসংহার

অভিনন্দন! আপনি কোডল্যাবটি সফলভাবে সম্পন্ন করেছেন:

  • একটি Firebase প্রকল্প সেট আপ করুন
  • একটি অ্যান্ড্রয়েড অ্যাপের সাথে ফায়ারবেস একীভূত করুন
  • FCM HTTP v1 API-এর জন্য শংসাপত্র তৈরি করুন
  • FCM HTTP v1 API এর মাধ্যমে আপনার অ্যাপে একটি বার্তা পাঠান

FCM-এর উন্নত বৈশিষ্ট্যগুলি অন্বেষণ করতে, নিম্নলিখিত তথ্যসূত্রগুলি কার্যকর: