C++ দিয়ে ডায়নামিক লিঙ্ক তৈরি করুন

আপনি Firebase Dynamic Links এপিআই (Firebase Dynamic Links API) ব্যবহার করে ছোট বা দীর্ঘ Dynamic Links তৈরি করতে পারেন। লিঙ্ক তৈরির জন্য এই এপিআই বেশ কিছু ঐচ্ছিক প্যারামিটার কাঠামো গ্রহণ করে। পূর্বে তৈরি করা দীর্ঘ লিঙ্ক থেকেও ছোট লিঙ্ক তৈরি করা যায়। Firebase Dynamic Links নিম্নলিখিতের মতো একটি ইউআরএল (URL) তৈরি করে:

https://example.page.link/WXYZ

C++ SDK-টি অ্যান্ড্রয়েড এবং iOS উভয়ের জন্যই কাজ করে, তবে প্রতিটি প্ল্যাটফর্মের জন্য কিছু অতিরিক্ত সেটআপের প্রয়োজন হয়।

শুরু করার আগে

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

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

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

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

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

অ্যান্ড্রয়েড

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

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

  3. সুপারিশকৃত : আপনার ডিপ লিঙ্ক এবং ফলব্যাক লিঙ্কে অনুমোদিত ইউআরএল প্যাটার্নগুলো নির্দিষ্ট করে দিন। এর মাধ্যমে, আপনি অননুমোদিত পক্ষগুলোকে Dynamic Links তৈরি করা থেকে বিরত রাখতে পারবেন, যা আপনার ডোমেইন থেকে আপনার নিয়ন্ত্রণাধীন নয় এমন সাইটে রিডাইরেক্ট করে। নির্দিষ্ট ইউআরএল প্যাটার্নের অনুমতি দেখুন।

আইওএস

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

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

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

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

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

কাস্টম ডোমেইন

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

Firebase Dynamic Links এপিআই ব্যবহার করে

অ্যাপ তৈরি এবং চালু করুন

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

firebase::App এর জন্য হেডার ফাইলটি অন্তর্ভুক্ত করুন:

#include "firebase/app.h"

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

অ্যান্ড্রয়েড

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

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

আইওএস

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

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

Dynamic Links লাইব্রেরি শুরু করুন

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

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

প্যারামিটার থেকে একটি দীর্ঘ Dynamic Link তৈরি করা

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

নিম্নলিখিত সংক্ষিপ্ত উদাহরণটি https://www.example.com/ এর জন্য একটি দীর্ঘ ডাইনামিক লিঙ্ক তৈরি করে, যা আপনার অ্যান্ড্রয়েড অ্যাপ com.example.android.package_name এবং আইওএস অ্যাপ 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 তৈরি করা

একটি সংক্ষিপ্ত ডাইনামিক লিঙ্ক তৈরি করতে, পূর্বে তৈরি করা একটি দীর্ঘ লিঙ্ক 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());
  }
}