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

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

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

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

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

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

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

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

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

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

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

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

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

নিম্নলিখিত ন্যূনতম উদাহরণটি https://www.example.com/-এর জন্য একটি বড় ডায়নামিক লিঙ্ক তৈরি করে যা 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);

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

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

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

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

নিচে দেওয়া উদাহরণে, একাধিক সাধারণ প্যারামিটার সেট করা একটি Dynamic Link তৈরি করা হয়েছে:

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);

আপনি নিম্নলিখিত পদ্ধতি ব্যবহার করে Dynamic Link প্যারামিটার সেট করতে পারবেন:

DynamicLink প্যারামিটার
setLink আপনার অ্যাপ যে লিঙ্কটি খুলবে। আপনার অ্যাপ হ্যান্ডেল করতে পারে এমন একটি URL নির্দিষ্ট করুন, সাধারণত অ্যাপের কন্টেন্ট বা পে-লোড, যা অ্যাপ-নির্দিষ্ট লজিক (যেমন, ব্যবহারকারীকে কুপন দেওয়া বা স্বাগত স্ক্রিন দেখানো) শুরু করে। এই লিঙ্কে অবশ্যই ভালভাবে ফর্ম্যাট করা URL থাকতে হবে, সঠিকভাবে URL-এনকোড করা থাকতে হবে, HTTP বা HTTPS ব্যবহার করতে হবে এবং এটি অন্য কোনও ডায়নামিক লিঙ্ক হতে পারবে না।
setDomainUriPrefix আপনার ডায়নামিক লিঙ্ক URL প্রিফিক্স, যা আপনি Firebase কনসোলে খুঁজে পাবেন। ক ডায়নামিক লিঙ্ক ডোমেন নিম্নলিখিত উদাহরণের মতো দেখতে হয়:
https://example.com/link
https://example.page.link
AndroidParameters
setFallbackUrl অ্যাপ ইনস্টল করা না থাকলে যে লিঙ্কটি খুলতে হবে। অ্যাপ ইনস্টল করা না থাকলে, Play Store থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করার জন্য এটি নির্দিষ্ট করুন, যেমন কন্টেন্টের মোবাইল ওয়েব ভার্সন খুলুন অথবা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা দেখান।
setMinimumVersion আপনার অ্যাপের ন্যূনতম ভার্সনের versionCode যা লিঙ্কটি খুলতে পারে। ইনস্টল করা অ্যাপটি পুরনো ভার্সনের হলে, ব্যবহারকারীকে Play Store-এ নিয়ে যাওয়া হয় যাতে তিনি অ্যাপটি আপগ্রেড করতে পারেন।
IosParameters
setAppStoreId আপনার অ্যাপের App Store ID, অ্যাপ ইনস্টল করা না থাকলে ব্যবহারকারীদের App Store-এ পাঠাতে ব্যবহার করা হয়
setFallbackUrl অ্যাপ ইনস্টল করা না থাকলে যে লিঙ্কটি খুলতে হবে। অ্যাপ ইনস্টল করা না থাকলে, App Store থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করার জন্য এটি নির্দিষ্ট করুন, যেমন কন্টেন্টের মোবাইল ওয়েব ভার্সন খোলা অথবা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা দেখানো।
setCustomScheme আপনার অ্যাপের কাস্টম URL স্কিম, যদি আপনার অ্যাপের বান্ডেল আইডি ছাড়া অন্য কিছু হিসেবে সংজ্ঞায়িত করা হয়
setIpadFallbackUrl অ্যাপ ইনস্টল করা না থাকলে iPad-এ খোলার জন্য লিঙ্ক। অ্যাপ ইনস্টল করা না থাকলে, App Store থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করার জন্য এটি নির্দিষ্ট করুন, যেমন কন্টেন্টের ওয়েব ভার্সন খুলুন বা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা দেখান।
setIpadBundleId লিঙ্ক খোলার জন্য iPad-এ ব্যবহার করা iOS অ্যাপের বান্ডেল আইডি। Firebase কনসোলের ওভারভিউ পৃষ্ঠা থেকে অ্যাপটিকে আপনার প্রোজেক্টের সাথে কানেক্ট করতে হবে।
setMinimumVersion আপনার অ্যাপের ন্যূনতম ভার্সনের ভার্সন নম্বর যা লিঙ্কটি খুলতে পারে। আপনার অ্যাপ খোলার সময় এই ফ্ল্যাগটি অ্যাপে পাস করা হয় এবং আপনার অ্যাপকে সেটি নিয়ে কী করতে হবে তা সিদ্ধান্ত নিতে হবে।
NavigationInfoParameters
setForcedRedirectEnabled '১' হিসেবে সেট করা থাকলে, Dynamic Link খোলার সময় অ্যাপ প্রিভিউ পৃষ্ঠা এড়িয়ে যান এবং পরিবর্তে অ্যাপ বা স্টোরে রিডাইরেক্ট করুন। অ্যাপ প্রিভিউ পৃষ্ঠা (ডিফল্ট হিসেবে চালু করা থাকে) ব্যবহারকারীরা অ্যাপে Dynamic Links খুললে, তাদের আরও নির্ভরযোগ্যভাবে সবচেয়ে উপযুক্ত গন্তব্যে পাঠাতে পারে; তবে, আপনি যদি চান যে Dynamic Link শুধুমাত্র সেইসব অ্যাপে খোলা হোক যেগুলি এই পৃষ্ঠা ছাড়াই নির্ভরযোগ্যভাবে Dynamic Links খুলতে পারে, তাহলে এই প্যারামিটার দিয়ে আপনি এটি বন্ধ করে দিতে পারেন। এই প্যারামিটারটি শুধুমাত্র iOS-এ Dynamic Link-এর আচরণকে প্রভাবিত করবে।
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-এ পাঠানো হয়।