Flutter অ্যাপে ডায়নামিক লিঙ্ক তৈরি করা

আপনি Firebase Dynamic Links Builder API-এর সাহায্যে ছোট বা বড় ডায়নামিক লিঙ্ক তৈরি করতে পারবেন। এই API হয় একটি দীর্ঘ Dynamic Link অথবা Dynamic Link প্যারামিটার সহ একটি অবজেক্ট গ্রহণ করে এবং নিম্নলিখিত উদাহরণের মতো URL রিটার্ন করে:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

আপনার Android অ্যাপে ডায়নামিক লিঙ্ক তৈরি করার আগে, আপনাকে অবশ্যই Firebase SDK অন্তর্ভুক্ত করতে হবে। আপনার অ্যাপ ডায়নামিক লিঙ্ক পাওয়ার জন্য সেট-আপ করা থাকলে, আপনি আগেই এইসব ধাপ সম্পূর্ণ করেছেন এবং এই বিভাগটি এড়িয়ে যেতে পারেন।

  1. আপনি যদি আগে থেকে না করে থাকেন, তাহলে Flutter-এর জন্য Firebase SDK ইনস্টল ও ইনিশিয়ালাইজ করুন।

  2. আপনার Flutter প্রোজেক্টের রুট ডিরেক্টরি থেকে, Dynamic Links প্লাগ-ইন ইনস্টল করতে নিম্নলিখিত কমান্ডটি রান করুন:

    flutter pub add firebase_dynamic_links
    
  3. আপনি Android অ্যাপ তৈরি করলে, Firebase কনসোলের প্রোজেক্ট সেটিংস পৃষ্ঠা খুলুন এবং আপনার SHA-1 সাইনিং কী উল্লেখ করেছেন কিনা তা ভাল করে দেখে নিন। আপনি অ্যাপ লিঙ্ক ব্যবহার করলে, আপনার SHA-256 কীও উল্লেখ করুন।

  4. Firebase কনসোলে, ডায়নামিক লিঙ্ক বিভাগ খুলুন।

    1. আপনি যদি আগে থেকেই আপনার ডায়নামিক লিঙ্কের জন্য কোনও ডোমেন সেট-আপ না করে থাকেন, তাহলে শুরু করুন বোতামে ক্লিক করুন এবং প্রম্পট অনুসরণ করুন।

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

    2. সাজেস্ট করা: "আরও" (⋮) মেনু থেকে, আপনার ডিপ লিঙ্ক ও ফলব্যাক লিঙ্কে অনুমোদিত URL প্যাটার্ন নির্দিষ্ট করুন। এটি করার মাধ্যমে, আপনি অননুমোদিত পার্টিকে এমন ডাইনামিক লিঙ্ক তৈরি করা থেকে বিরত করেন যা আপনার ডোমেন থেকে আপনার নিয়ন্ত্রণ না করা সাইটে রিডাইরেক্ট করে।

      নির্দিষ্ট URL প্যাটার্নকে অনুমতি দিন দেখুন।

Dynamic Link তৈরি করতে, নতুন DynamicLinkParameters অবজেক্ট তৈরি করে সেটি buildLink() বা buildShortLink()-এ পাস করুন।

নিম্নলিখিত সংক্ষিপ্ত উদাহরণটি https://www.example.com/-এর জন্য একটি দীর্ঘ Dynamic Link তৈরি করে যা Android-এ com.example.app.android এবং iOS-এ com.example.app.ios অ্যাপের মাধ্যমে খোলে:

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
  iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);

ছোট ডায়নামিক লিঙ্ক তৈরি করতে, DynamicLinkParameters অবজেক্টটি buildShortLink()-এ পাস করুন। ছোট লিঙ্ক তৈরি করার জন্য নেটওয়ার্ক কল প্রয়োজন। যেমন:

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
  iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);

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

তবে, আপনার শর্ট লিঙ্ক ব্যবহারকারী-নির্দিষ্ট তথ্যের দিকে নিয়ে গেলে, আপনাকে ১৭-অক্ষরের প্রত্যয় সহ আরও বড় লিঙ্ক তৈরি করতে হবে যাতে কেউ সঠিক ডায়নামিক লিঙ্ক অনুমান করতে না পারে। এটি করতে, buildShortLink() পদ্ধতিতে ShortDynamicLinkType.unguessable পাস করুন:

final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
    dynamicLinkParams,
    shortLinkType: ShortDynamicLinkType.unguessable,
);

আপনি Dynamic Link Builder API ব্যবহার করে যেকোনও কাজ করে এমন প্যারামিটার সহ Dynamic Link তৈরি করতে পারবেন। API রেফারেন্স দেখুন।

নিম্নলিখিত উদাহরণটি বেশ কয়েকটি সাধারণ প্যারামিটার সেট সহ একটি ডাইনামিক লিঙ্ক তৈরি করে:

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(
    packageName: "com.example.app.android",
    minimumVersion: 30,
  ),
  iosParameters: const IOSParameters(
    bundleId: "com.example.app.ios",
    appStoreId: "123456789",
    minimumVersion: "1.0.1",
  ),
  googleAnalyticsParameters: const GoogleAnalyticsParameters(
    source: "twitter",
    medium: "social",
    campaign: "example-promo",
  ),
  socialMetaTagParameters: SocialMetaTagParameters(
    title: "Example of a Dynamic Link",
    imageUrl: Uri.parse("https://example.com/image.png"),
  ),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);

আপনি নিম্নলিখিত পদ্ধতিতে ডায়নামিক লিঙ্ক প্যারামিটার সেট করতে পারবেন:

DynamicLink প্যারামিটার
setLink আপনার অ্যাপ যে লিঙ্ক খুলবে। আপনার অ্যাপ হ্যান্ডেল করতে পারে এমন একটি URL উল্লেখ করুন, সাধারণত অ্যাপের কন্টেন্ট বা পেলোড, যা অ্যাপ-নির্দিষ্ট লজিক শুরু করে (যেমন ব্যবহারকারীকে একটি কুপন দিয়ে ক্রেডিট করা বা একটি স্বাগত স্ক্রিন দেখানো)। এই লিঙ্কটি অবশ্যই একটি ভাল-ফরম্যাট করা URL হতে হবে, সঠিকভাবে URL-এনকোড করা, HTTP বা HTTPS ব্যবহার করা এবং অন্য কোনও Dynamic লিঙ্ক হতে পারবে না।
setDomainUriPrefix আপনার ডায়নামিক লিঙ্ক URL প্রিফিক্স, যা আপনি Firebase কনসোলে খুঁজে পাবেন। একটি ডায়নামিক লিঙ্ক ডোমেন নিম্নলিখিত উদাহরণের মতো দেখতে হয়:
https://example.com/link
https://example.page.link
AndroidParameters
setFallbackUrl অ্যাপ ইনস্টল করা না থাকলে যে লিঙ্ক খুলতে হবে। অ্যাপ ইনস্টল করা না থাকলে, Play Store থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করতে এটি উল্লেখ করুন, যেমন কন্টেন্টের মোবাইল ওয়েব ভার্সন খোলা অথবা আপনার অ্যাপের জন্য প্রচারমূলক পৃষ্ঠা দেখানো।
setMinimumVersion আপনার অ্যাপের ন্যূনতম ভার্সনের versionCode যা লিঙ্কটি খুলতে পারে। ইনস্টল করা অ্যাপটি পুরনো ভার্সন হলে, ব্যবহারকারীকে Play Store-এ নিয়ে যাওয়া হয় যাতে তিনি অ্যাপটি আপগ্রেড করতে পারেন।
IosParameters
setAppStoreId আপনার অ্যাপের App Store আইডি, অ্যাপ ইনস্টল করা না থাকলে ব্যবহারকারীদের App Store-এ পাঠাতে ব্যবহার করা হয়
setFallbackUrl অ্যাপ ইনস্টল করা না থাকলে যে লিঙ্ক খুলতে হবে। অ্যাপ ইনস্টল করা না থাকলে, App Store থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করতে এটি উল্লেখ করুন, যেমন কন্টেন্টের মোবাইল ওয়েব ভার্সন খোলা বা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা দেখানো।
setCustomScheme আপনার অ্যাপের কাস্টম URL স্কিম, যদি আপনার অ্যাপের বান্ডেল আইডি ছাড়া অন্য কিছু হিসেবে সংজ্ঞায়িত করা হয়
setIpadFallbackUrl অ্যাপ ইনস্টল করা না থাকলে iPad-এ খোলার জন্য লিঙ্ক। অ্যাপ ইনস্টল করা না থাকলে, App Store থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করতে এটি উল্লেখ করুন, যেমন কন্টেন্টের ওয়েব ভার্সন খোলা বা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা দেখানো।
setIpadBundleId লিঙ্ক খোলার জন্য iPad-এ ব্যবহার করার জন্য iOS অ্যাপের বান্ডিল আইডি। Firebase কনসোলের ওভারভিউ পৃষ্ঠা থেকে অ্যাপটি আপনার প্রোজেক্টের সাথে কানেক্ট করতে হবে।
setMinimumVersion আপনার অ্যাপের ন্যূনতম ভার্সনের ভার্সন নম্বর যা লিঙ্কটি খুলতে পারে। অ্যাপ খোলার সময় এই ফ্ল্যাগ আপনার অ্যাপে পাস করা হয় এবং আপনার অ্যাপকে সিদ্ধান্ত নিতে হবে যে এটি নিয়ে কী করা হবে।
NavigationInfoParameters
setForcedRedirectEnabled '১' হিসেবে সেট করা হলে, ডায়নামিক লিঙ্ক খোলা হলে অ্যাপ প্রিভিউ পৃষ্ঠা এড়িয়ে যান এবং এর পরিবর্তে অ্যাপ বা স্টোরে রিডাইরেক্ট করুন। অ্যাপ প্রিভিউ পৃষ্ঠা (ডিফল্ট হিসেবে চালু করা থাকে) ব্যবহারকারীদের আরও নির্ভরযোগ্যভাবে সবচেয়ে উপযুক্ত গন্তব্যে পাঠাতে পারে যখন তারা অ্যাপে ডায়নামিক লিঙ্ক খোলে; তবে, আপনি যদি আশা করেন যে ডায়নামিক লিঙ্ক শুধুমাত্র এমন অ্যাপে খোলা হবে যা এই পৃষ্ঠা ছাড়াই নির্ভরযোগ্যভাবে ডায়নামিক লিঙ্ক খুলতে পারে, তাহলে আপনি এই প্যারামিটার দিয়ে এটি বন্ধ করতে পারেন। এই প্যারামিটারটি শুধুমাত্র iOS-এ ডায়নামিক লিঙ্কের আচরণকে প্রভাবিত করবে।
SocialMetaTagParameters
setTitle কোনও সোশ্যাল পোস্টে ডায়নামিক লিঙ্ক শেয়ার করার সময় যে শীর্ষক ব্যবহার করা হবে।
setDescription কোনও সোশ্যাল পোস্টে ডায়নামিক লিঙ্ক শেয়ার করা হলে যে বিবরণ ব্যবহার করা হবে।
setImageUrl এই লিঙ্কের সাথে সম্পর্কিত কোনও ছবির URL। ছবির সাইজ অন্তত ৩০০x২০০ পিক্সেল এবং ৩০০ কেবির কম হতে হবে।
GoogleAnalyticsParameters
setSource
setMedium
setCampaign
setTerm
setContent
Google Play অ্যানালিটিক্স প্যারামিটার। এইসব প্যারামিটার (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) Play Store-এ পাস করা হয় এবং লিঙ্ক পেলোডে যোগ করা হয়।
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect অ্যানালিটিক্স প্যারামিটার। এইসব প্যারামিটার (`pt`, `at`, `ct`) App Store-এ পাস করা হয়।