C++ ব্যবহার করে Dynamic Links তৈরি করা

আপনি Firebase Dynamic Links API-এর সাহায্যে ছোট বা বড় Dynamic Links তৈরি করতে পারবেন। লিঙ্ক তৈরি করার জন্য API একাধিক ঐচ্ছিক প্যারামিটার স্ট্রাকচার নেয়। আগে তৈরি করা বড় লিঙ্ক থেকেও ছোট লিঙ্ক তৈরি করা যেতে পারে। Firebase Dynamic Links নিচে উল্লেখ করা URL-এর মতো URL তৈরি করে:

https://example.page.link/WXYZ

C++ SDK, Android ও iOS, দু'টি প্ল্যাটফর্মেই কাজ করে, তবে প্রতিটি প্ল্যাটফর্মের জন্য কিছু অতিরিক্ত সেট-আপ প্রয়োজন হয়। d

শুরু করার আগে

আপনি Firebase Dynamic Links ব্যবহার করার আগে, আপনাকে এগুলি করতে হবে:

  • আপনার C++ প্রোজেক্ট রেজিস্টার করুন এবং Firebase ব্যবহার করার জন্য এটি কনফিগার করুন।

    আপনার C++ প্রোজেক্টে আগে থেকেই Firebase ব্যবহার করা হলে, এটি আগেই Firebase-এর জন্য রেজিস্টার ও কনফিগার করা হয়ে গেছে।

  • আপনার C++ প্রোজেক্টে Firebase C++ SDK যোগ করুন।

মনে রাখবেন, আপনার C++ প্রোজেক্টে Firebase যোগ করার জন্য Firebase কনসোল এবং আপনার খোলা C++ প্রোজেক্ট (যেমন, আপনি কনসোল থেকে Firebase কনফিগারেশন ফাইল ডাউনলোড করেন, তারপর সেগুলি আপনার C++ প্রোজেক্টে সরান) দুটিতেই টাস্ক করতে হয়।

Android

  1. Firebase কনসোলে, Dynamic Links বিভাগটি খুলুন।
  2. আপনি যদি এখনও পরিষেবার শর্তাবলীতে সম্মতি না দিয়ে থাকেন এবং আপনার Dynamic Links-এর জন্য URI প্রিফিক্স সেট না করে থাকেন, তাহলে প্রম্পট করা হলে তা করুন।

    আপনার আগে থেকেই Dynamic Links URI প্রিফিক্স থাকলে, সেটি লিখে রাখুন। প্রোগ্রাম্যাটিক উপায়ে তৈরি করার সময় Dynamic Links আপনাকে Dynamic Links URI প্রিফিক্স দিতে হবে।

  3. সাজেস্ট করা: আপনার ডিপ লিঙ্ক ও ফলব্যাক লিঙ্কে অনুমোদিত URL প্যাটার্ন নির্দিষ্ট করুন। এটি করলে, আপনি অননুমোদিত পার্টিকে এমন Dynamic Links তৈরি করা থেকে আটকাতে পারবেন যা আপনার ডোমেন থেকে এমন সাইটে রিডাইরেক্ট করে যা আপনি কন্ট্রোল করেন না। নির্দিষ্ট URL প্যাটার্নকে অনুমতি দিন দেখুন।

iOS

  1. Firebase কনসোলে, Dynamic Links বিভাগটি খুলুন।
  2. আপনি যদি এখনও পরিষেবার শর্তাবলীতে সম্মতি না দিয়ে থাকেন এবং আপনার Dynamic Links-এর জন্য URI প্রিফিক্স সেট না করে থাকেন, তাহলে প্রম্পট করা হলে তা করুন।

    আপনার আগে থেকেই Dynamic Links URI প্রিফিক্স থাকলে, সেটি লিখে রাখুন। প্রোগ্রামাটিক উপায়ে Dynamic Links তৈরি করার সময় আপনাকে Dynamic Links ডোমেন দিতে হবে।

  3. Firebase Dynamic Links C++ ক্লায়েন্ট লাইব্রেরি, লিঙ্ক প্রসেস করার জন্য iOS-এ কাস্টম URL স্কিম ব্যবহার করে। আপনাকে অবশ্যই নিজের অ্যাপে কাস্টম URL স্কিম যোগ করতে হবে, যাতে Dynamic Links:
    1. আপনার প্রোজেক্ট কনফিগারেশন খুলতে, বাঁদিকের ট্রি ভিউতে প্রোজেক্টের নামে ডবল ক্লিক করুন। টার্গেট বিভাগ থেকে আপনার অ্যাপ বেছে নিন, তারপরে তথ্য ট্যাব বেছে নিন এবং URL-এর ধরন বিভাগটি বড় করুন।
    2. + বোতামে ক্লিক করুন এবং আপনার রিভার্সড ক্লায়েন্ট আইডির জন্য একটি URL স্কিম যোগ করুন। এই ভ্যালু খুঁজে পেতে, GoogleService-Info.plist কনফিগারেশন ফাইল খুলুন এবং REVERSED_CLIENT_ID কী খুঁজুন। সেই কী-এর ভ্যালু কপি করুন এবং কনফিগারেশন পৃষ্ঠায় URL স্কিম বক্সে পেস্ট করুন। অন্যান্য ফিল্ড খালি রাখুন।
    3. + বোতামে ক্লিক করে দ্বিতীয় URL স্কিম যোগ করুন। এটি আপনার অ্যাপের বান্ডেল আইডির মতোই। যেমন, আপনার বান্ডেল আইডি যদি com.example.ios হয়, তাহলে URL স্কিম বক্সে সেই ভ্যালু টাইপ করুন। প্রোজেক্টের সাধারণ ট্যাবে কনফিগারেশন (পরিচয় > বান্ডেল শনাক্তকারী) থেকে আপনার অ্যাপের বান্ডেল আইডি খুঁজে পাবেন।

Firebase কনসোল ব্যবহার করুন

আপনি যদি একটি Dynamic Link তৈরি করতে চান, তা পরীক্ষার উদ্দেশ্যে হোক বা আপনার মার্কেটিং টিমের জন্য হোক, যাতে তারা সহজেই এমন একটি লিঙ্ক তৈরি করতে পারে যা সোশ্যাল মিডিয়া পোস্টের মতো কোনও কিছুর মধ্যে ব্যবহার করা যেতে পারে, তাহলে সবচেয়ে সহজ উপায় হল Firebase কনসোলে গিয়ে ধাপে ধাপে ফর্ম পূরণ করে ম্যানুয়ালি একটি তৈরি করা।

কাস্টম ডোমেন

goo.gl বা page.link সাবডোমেনের পরিবর্তে নিজের ডোমেন ব্যবহার করে আপনি নিজের Dynamic Linkব্র্যান্ডিংয়ের উপর আরও বেশি নিয়ন্ত্রণ পাবেন। আপনার প্রজেক্টের জন্য কাস্টম ডোমেন সেট-আপ করতে এইসব নির্দেশাবলী অনুসরণ করুন।

Firebase Dynamic Links API ব্যবহার করা

অ্যাপ তৈরি ও ইনিশিয়ালাইজ করা

Dynamic Links তৈরি করার আগে, আপনাকে একটি firebase::App অবজেক্ট তৈরি ও ইনিশিয়ালাইজ করতে হবে।

firebase::App-এর জন্য হেডার ফাইল যোগ করুন:

#include "firebase/app.h"

পরবর্তী অংশটি আপনার প্ল্যাটফর্মের উপর নির্ভর করে আলাদা আলাদা হয়:

Android

JNI এনভায়রনমেন্ট এবং Java অ্যাক্টিভিটির jobject রেফারেন্স আর্গুমেন্ট হিসেবে পাস করে firebase::App তৈরি করুন:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

iOS

firebase::App তৈরি করুন:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));

Dynamic Links লাইব্রেরি ইনিশিয়ালাইজ করা

Dynamic Link তৈরি করার আগে, আপনাকে প্রথমে Dynamic Links লাইব্রেরি ইনিশিয়ালাইজ করতে হবে:

::firebase::dynamic_links::Initialize(app, null);

প্যারামিটার থেকে বড় Dynamic Link তৈরি করা

ডায়নামিক লিঙ্ক তৈরি করতে, ডায়নামিক লিঙ্ক কম্পোনেন্ট অবজেক্ট তৈরি করুন, অতিরিক্ত কনফিগারেশনের জন্য ঐচ্ছিক মেম্বারদের যেকোনও একটি সেট করুন এবং এটিকে dynamic_links::GetShortLink বা dynamic_links::GetLongLink-এ পাস করুন।

নিচে দেওয়া ন্যূনতম উদাহরণটি https://www.example.com/ লিঙ্কে একটি বড় ডায়নামিক লিঙ্ক তৈরি করে যা আপনার Android অ্যাপ com.example.android.package_name এবং iOS অ্যাপ com.example.ios-এর সাথে খোলে:

firebase::dynamic_links::IOSParameters ios_parameters("com.example.ios");

firebase::dynamic_links::AndroidParameters android_parameters(
    "com.example.android.package_name");

firebase::dynamic_links::DynamicLinkComponents components(
    "https://www.example.com/", "example.page.link");
components.android_parameters = &android_parameters;
components.ios_parameters = &ios_parameters;

firebase::dynamic_links::GeneratedDynamicLink long_link =
    firebase::dynamic_links::GetLongLink(components);

Short তৈরি করা Dynamic Link

ছোট ডায়নামিক লিঙ্ক তৈরি করতে, আগে তৈরি করা বড় লিঙ্কটি GetShortLink-এ পাস করুন অথবা উপরে যেভাবে দেখানো হয়েছে সেইভাবে DynamicLinkComponents তৈরি করুন।

GetShortLink বিকল্প হিসেবে DynamicLinkOptions কনফিগারেশন প্যারামিটার নেয় PathLength; এটি আপনাকে লিঙ্ক কীভাবে জেনারেট করা হবে তা কন্ট্রোল করতে দেয়। ছোট লিঙ্ক তৈরি করার জন্য Firebase ব্যাকএন্ডে নেটওয়ার্ক অনুরোধ করতে হয়, তাই GetShortLink হল অ্যাসিঙ্ক্রোনাস, যা Future<GeneratedLink> রিটার্ন করে।

যেমন:

firebase::dynamic_links::DynamicLinkOptions short_link_options;
short_link_options.path_length = firebase::dynamic_links::kPathLengthShort;

firebase::Future<firebase::dynamic_links::GeneratedDynamicLink> result =
    firebase::dynamic_links::GetShortLink(components, short_link_options);

আপনার প্রোগ্রামে যদি নিয়মিত আপডেট লুপ চলে (যেমন, প্রতি সেকেন্ডে ৩০ বা ৬০ বার করে), তাহলে আপনি প্রতি আপডেটের পরে ফলাফল চেক করতে পারেন:

if (result.status() == firebase::kFutureStatusComplete) {
  if (result.error() == firebase::dynamic_links::kErrorCodeSuccess) {
    firebase::dynamic_links::GeneratedDynamicLink link = *result.result();
    printf("Create short link succeeded: %s\n", link.url.c_str());
  } else {
    printf("Created short link failed with error '%s'\n",
           result.error_message());
  }
}