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

আপনি Firebase Dynamic Links API-এর মাধ্যমে ছোট বা বড় Dynamic Links তৈরি করতে পারবেন। API লিঙ্ক তৈরি করার জন্য বেশ কিছু ঐচ্ছিক প্যারামিটার স্ট্রাকচার নেয়। আগে তৈরি করা বড় লিঙ্ক থেকেও ছোট লিঙ্ক তৈরি করা যেতে পারে। Firebase Dynamic Links এই ধরনের 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 স্কিম ব্যবহার করে লিঙ্ক প্রসেস করে। Dynamic Links পাওয়ার জন্য আপনার অ্যাপে কাস্টম URL স্কিম যোগ করতে হবে:
    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

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

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-এ পাস করে DynamicLinkComponents অবজেক্ট তৈরি করুন।

নিম্নলিখিত সংক্ষিপ্ত উদাহরণটি https://www.example.com/-এর জন্য একটি দীর্ঘ Dynamic Link তৈরি করে যা আপনার 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);

Dynamic Link-এর একটি Short তৈরি করা হচ্ছে

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

GetShortLink বিকল্প হিসেবে PathLength-এর সাথে অতিরিক্ত DynamicLinkOptions কনফিগারেশন প্যারামিটার নেয়; এটি আপনাকে লিঙ্ক কীভাবে তৈরি করা উচিত তা নিয়ন্ত্রণ করতে দেয়। ছোট লিঙ্ক তৈরি করার জন্য 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());
  }
}