Google 致力于为黑人社区推动种族平等。查看具体举措

ইমেল অ্যাকশন লিঙ্ক তৈরি করা

মোবাইল অ্যাপগুলিকে কখনও কখনও ব্যবহারকারীদের সাথে যোগাযোগ করতে হয় এবং তাদের ইমেল পাঠিয়ে কিছু পদক্ষেপ নিতে বলা হয়।

Firebase এডমিন SDK আছে ব্যবহারকারীদের লিঙ্ক তারা পাসওয়ার্ড রিসেট, ইমেল ঠিকানা যাচাই, এবং জন্য ব্যবহার করতে পারেন ধারণকারী ইমেল পাঠাতে করার ক্ষমতা প্রদান করে ইমেইল-ভিত্তিক সাইন-ইন। এই ইমেলগুলি গুগল দ্বারা প্রেরিত এবং স্বনির্ধারিত সীমিত।

আপনি যদি এর পরিবর্তে আপনার নিজের ইমেইল টেমপ্লেট এবং আপনার নিজের ইমেইল ডেলিভারি সার্ভিস ব্যবহার করতে চান, তাহলে আপনি উপরের প্রবাহের জন্য কর্মের লিঙ্কগুলি প্রোগ্রাম করার জন্য Firebase অ্যাডমিন SDK ব্যবহার করতে পারেন, যা আপনি আপনার ব্যবহারকারীদের ইমেলগুলিতে অন্তর্ভুক্ত করতে পারেন।

এটি নিম্নলিখিত সুবিধাগুলির সাথে আসে:

  • ইমেল টেমপ্লেট কাস্টমাইজ করুন। এর মধ্যে রয়েছে নতুন শৈলী এবং কাস্টম ব্র্যান্ডিং যোগ করার ক্ষমতা, শব্দ এবং লোগো পরিবর্তন করা, ব্যবহারকারীদের পুরো নামের পরিবর্তে প্রথম নাম দিয়ে ঠিকানা দেওয়া ইত্যাদি।
  • প্রসঙ্গের উপর নির্ভর করে বিভিন্ন টেমপ্লেট প্রয়োগ করুন। উদাহরণস্বরূপ, যদি ব্যবহারকারী একটি নিউজলেটার সাবস্ক্রাইব করার জন্য তাদের ইমেইল যাচাই করে থাকেন, তাহলে ইমেইল বিষয়বস্তুতে প্রেক্ষাপট প্রদান করতে হতে পারে। আরেকটি উদাহরণ হল ইমেইল লিংক সাইন ইন: একটি দৃশ্যে এটি একই ব্যবহারকারীর দ্বারা বা অন্য ব্যবহারকারীর আমন্ত্রণ হিসাবে ট্রিগার হতে পারে। প্রসঙ্গটি ইমেলের মধ্যে অন্তর্ভুক্ত করা দরকার।
  • কাস্টমাইজড ইমেল টেমপ্লেটগুলি স্থানীয়করণ করুন।
  • একটি নিরাপদ সার্ভার পরিবেশ থেকে লিঙ্ক তৈরি করার ক্ষমতা।
  • মোবাইল অ্যাপ বা ব্রাউজারের মাধ্যমে কীভাবে লিঙ্কটি খুলতে হবে এবং কীভাবে অতিরিক্ত রাষ্ট্রীয় তথ্য পাস করা যায় ইত্যাদি কাস্টমাইজ করার ক্ষমতা।
  • ইমেল অ্যাকশন লিঙ্ক নির্মাণের সময় মোবাইল অ্যাপ প্রবাহের জন্য ব্যবহৃত ডাইনামিক লিঙ্ক ডোমেইন কাস্টমাইজ করার ক্ষমতা, এবং এমনকি প্রসঙ্গ বা মোবাইল অ্যাপের উপর নির্ভর করে একটি ভিন্ন গতিশীল লিঙ্ক ডোমেন নির্দিষ্ট করুন।

ActionCodeSettings শুরু করুন

আগে আপনি একটি ইমেল কর্ম লিঙ্ক তৈরি করার আগে আপনার আরম্ভ করার প্রয়োজন হতে পারে ActionCodeSettings উদাহরণস্বরূপ।

ActionCodeSettings আপনি অতিরিক্ত রাষ্ট্র এর মাধ্যমে একটি URL টি প্রবেশযোগ্য ব্যবহারকারী ইমেইল লিঙ্ক ক্লিক পর অবিরত পাস করার অনুমতি দেয়। এটি ব্যবহারকারীকে ক্রিয়া সম্পন্ন হওয়ার পরে অ্যাপে ফিরে যাওয়ার ক্ষমতাও প্রদান করে। উপরন্তু, আপনি নির্দিষ্ট করতে পারেন যে ইমেইল অ্যাকশন লিঙ্কটি কোন মোবাইল অ্যাপ্লিকেশন থেকে সরাসরি ইনস্টল করার সময় বা ব্রাউজার থেকে পরিচালনা করতে হবে।

একটি মোবাইল অ্যাপের মাধ্যমে যে লিঙ্কগুলি খোলা হবে তার জন্য, আপনাকে Firebase ডায়নামিক লিঙ্কগুলি সক্ষম করতে হবে এবং আপনার মোবাইল অ্যাপ থেকে এই লিঙ্কগুলি সনাক্ত করতে কিছু কাজ করতে হবে। কিভাবে করতে হয় তার নির্দেশাবলী পড়ুন Firebase ডায়নামিক লিংক কনফিগার ইমেল কর্মের জন্য।

একটি আরম্ভ করার জন্য ActionCodeSettings উদাহরণস্বরূপ, নিম্নলিখিত তথ্য প্রদান:

প্যারামিটার প্রকার বর্ণনা
url স্ট্রিং

লিঙ্ক সেট করে (স্টেট/অবিরত ইউআরএল) যার বিভিন্ন প্রসঙ্গে বিভিন্ন অর্থ রয়েছে:

  • যখন লিঙ্কটি ওয়েব কর্ম উইজেট পরিচালিত হয়, তাহলে এটি গভীর লিঙ্ক continueUrl ক্যোয়ারী প্যারামিটার।
  • যখন লিংক সরাসরি app এর মধ্যে পরিচালিত হয়, এই continueUrl ডাইনামিক লিংক গভীর লিঙ্কে ক্যোয়ারী প্যারামিটার।
iOS ({bundleId: string} | অনির্ধারিত) IOS বান্ডেল আইডি সেট করে। এটি ইনস্টল করা থাকলে এটি একটি iOS অ্যাপে লিঙ্কটি খোলার চেষ্টা করবে। IOS অ্যাপটি কনসোলে নিবন্ধিত হওয়া প্রয়োজন।
android ({packageName: string, installApp: boolean | undefined, minimumVersion: string | undefined} | undefined) অ্যান্ড্রয়েড প্যাকেজের নাম সেট করে। এটি ইনস্টল করা থাকলে এটি একটি অ্যান্ড্রয়েড অ্যাপে লিঙ্কটি খোলার চেষ্টা করবে। তাহলে installApp পাস করা হয়েছে, এটা ডিভাইসটি সমর্থন করে এবং একটি অ্যাপ্লিকেশান ইতিমধ্যেই ইনস্টল করা নেই যদি Android অ্যাপ্লিকেশান ইনস্টল করা হবে কিনা তা নির্দিষ্ট করে। এই ক্ষেত্রে একটি ছাড়া দেওয়া না থাকে তবে packageName , একটি ত্রুটি ব্যাখ্যা করলেন যে নিক্ষিপ্ত হয় packageName এই ক্ষেত্র সাথে প্রদান করা আবশ্যক। তাহলে minimumVersion নির্দিষ্ট করা, এবং অ্যাপ্লিকেশান এর একটি পুরোনো সংস্করণ ইনস্টল করা, ব্যবহারকারী অ্যাপ্লিকেশান আপগ্রেড করতে প্লে স্টোরে নিয়ে যাওয়া হয়। অ্যান্ড্রয়েড অ্যাপটি কনসোলে নিবন্ধিত হওয়া প্রয়োজন।
handleCodeInApp (বুলিয়ান | অনির্ধারিত) ইমেইল অ্যাকশন লিঙ্কটি প্রথমে একটি মোবাইল অ্যাপে খোলা হবে বা একটি ওয়েব লিংক। ডিফল্ট মিথ্যা। সত্যে সেট করা হলে, অ্যাকশন কোড লিঙ্কটি ইউনিভার্সাল লিঙ্ক বা অ্যান্ড্রয়েড অ্যাপ লিঙ্ক হিসাবে পাঠানো হবে এবং ইনস্টল করা থাকলে অ্যাপটি খোলা হবে। মিথ্যা ক্ষেত্রে, কোডটি প্রথমে ওয়েব উইজেটে প্রেরণ করা হবে এবং তারপর ইনস্টল করা হলে অ্যাপটি পুন redনির্দেশিত হবে।
dynamicLinkDomain (স্ট্রিং | অনির্ধারিত) ফায়ারবেস ডায়নামিক লিংক ব্যবহার করে খোলা হলে বর্তমান লিঙ্কের জন্য ব্যবহার করার জন্য ডাইনামিক লিঙ্ক ডোমেইন (অথবা সাবডোমেন) সেট করে। যেহেতু প্রতি প্রকল্পে একাধিক ডায়নামিক লিঙ্ক ডোমেন কনফিগার করা যায়, এই ক্ষেত্রটি স্পষ্টভাবে একটি বেছে নেওয়ার ক্ষমতা প্রদান করে। যদি কোনটি প্রদান করা না হয়, তবে প্রাচীনতম ডোমেনটি ডিফল্টরূপে ব্যবহৃত হয়।

নিম্নলিখিত উদাহরণে প্রকাশ কিভাবে একটি Firebase ডায়নামিক লিঙ্ক (iOS অ্যাপ্লিকেশন হিসাবে প্রথম একটি মোবাইল অ্যাপ খুলবে একটি ইমেল যাচাইকরণ লিঙ্কটিতে পাঠাতে com.example.ios বা Android অ্যাপ্লিকেশান com.example.android যেখানে অ্যাপ্লিকেশন যদি ইতিমধ্যে ইনস্টল করা ইনস্টল করবে এবং সর্বনিম্ন সংস্করণ 12)। গভীর লিংক অবিরত URL টি পে লোড উপস্থিত থাকবে https://www.example.com/checkout?cartId=1234 । গতিশীল লিংক ব্যবহৃত ডোমেইন coolapp.page.link Firebase ডায়নামিক লিংক সাথে ব্যবহারের জন্য কনফিগার করা আবশ্যক, যা।

Node.js

const actionCodeSettings = {
  // URL you want to redirect back to. The domain (www.example.com) for
  // this URL must be whitelisted in the Firebase Console.
  url: 'https://www.example.com/checkout?cartId=1234',
  // This must be true for email link sign-in.
  handleCodeInApp: true,
  iOS: {
    bundleId: 'com.example.ios',
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12',
  },
  // FDL custom domain.
  dynamicLinkDomain: 'coolapp.page.link',
};

জাভা

ActionCodeSettings actionCodeSettings = ActionCodeSettings.builder()
    .setUrl("https://www.example.com/checkout?cartId=1234")
    .setHandleCodeInApp(true)
    .setIosBundleId("com.example.ios")
    .setAndroidPackageName("com.example.android")
    .setAndroidInstallApp(true)
    .setAndroidMinimumVersion("12")
    .setDynamicLinkDomain("coolapp.page.link")
    .build();

পাইথন

action_code_settings = auth.ActionCodeSettings(
    url='https://www.example.com/checkout?cartId=1234',
    handle_code_in_app=True,
    ios_bundle_id='com.example.ios',
    android_package_name='com.example.android',
    android_install_app=True,
    android_minimum_version='12',
    dynamic_link_domain='coolapp.page.link',
)

যাওয়া

actionCodeSettings := &auth.ActionCodeSettings{
	URL:                   "https://www.example.com/checkout?cartId=1234",
	HandleCodeInApp:       true,
	IOSBundleID:           "com.example.ios",
	AndroidPackageName:    "com.example.android",
	AndroidInstallApp:     true,
	AndroidMinimumVersion: "12",
	DynamicLinkDomain:     "coolapp.page.link",
}

সি#

var actionCodeSettings = new ActionCodeSettings()
{
    Url = "https://www.example.com/checkout?cartId=1234",
    HandleCodeInApp = true,
    IosBundleId = "com.example.ios",
    AndroidPackageName = "com.example.android",
    AndroidInstallApp = true,
    AndroidMinimumVersion = "12",
    DynamicLinkDomain = "coolapp.page.link",
};

আরো জানতে, দেখুন ইমেইল কর্মের মধ্যে রাজ্য পাসিং

একটি পাসওয়ার্ড রিসেট লিঙ্ক তৈরি করতে, বিদ্যমান ব্যবহারকারীর ইমেইল এবং একটি ঐচ্ছিক প্রদান ActionCodeSettings অবজেক্ট। অপারেশনটি ইমেল অ্যাকশন লিঙ্কের মাধ্যমে সমাধান করা হবে। ব্যবহৃত ইমেইল একটি বিদ্যমান ব্যবহারকারীর অন্তর্গত হতে হবে।

Node.js

// Admin SDK API to generate the password reset link.
const userEmail = 'user@example.com';
admin
  .auth()
  .generatePasswordResetLink(userEmail, actionCodeSettings)
  .then((link) => {
    // Construct password reset email template, embed the link and send
    // using custom SMTP server.
    return sendCustomPasswordResetEmail(userEmail, displayName, link);
  })
  .catch((error) => {
    // Some error occurred.
  });

জাভা

String email = "user@example.com";
try {
  String link = FirebaseAuth.getInstance().generatePasswordResetLink(
      email, actionCodeSettings);
  // Construct email verification template, embed the link and send
  // using custom SMTP server.
  sendCustomEmail(email, displayName, link);
} catch (FirebaseAuthException e) {
  System.out.println("Error generating email link: " + e.getMessage());
}

পাইথন

email = 'user@example.com'
link = auth.generate_password_reset_link(email, action_code_settings)
# Construct password reset email from a template embedding the link, and send
# using a custom SMTP server.
send_custom_email(email, link)

যাওয়া

email := "user@example.com"
link, err := client.PasswordResetLinkWithSettings(ctx, email, actionCodeSettings)
if err != nil {
	log.Fatalf("error generating email link: %v\n", err)
}

// Construct password reset template, embed the link and send
// using custom SMTP server.
sendCustomEmail(email, displayName, link)

সি#

var email = "user@example.com";
var link = await FirebaseAuth.DefaultInstance.GeneratePasswordResetLinkAsync(
    email, actionCodeSettings);
// Construct email verification template, embed the link and send
// using custom SMTP server.
SendCustomEmail(email, displayName, link);

লিঙ্কটি তৈরি হওয়ার পরে, এটি কাস্টম পাসওয়ার্ড রিসেট ইমেলে ertedোকানো যেতে পারে এবং তারপর একটি কাস্টম SMTP সার্ভার ব্যবহার করে সংশ্লিষ্ট ব্যবহারকারীকে ইমেল করা যেতে পারে।

আপনাকে ডিফল্ট পাসওয়ার্ড পুনরায় সেট অবতরণ পাতা ব্যবহার না করেন তাহলে আপনার নিজের কাস্টম হ্যান্ডলার বিল্ডিং, দেখুন কাস্টম ইমেল কর্ম হ্যান্ডেলার তৈরি

একটি ইমেল যাচাইকরণ লিঙ্ক তৈরি করতে, বিদ্যমান ব্যবহারকারীর যাচাই না করা ইমেল এবং একটি ঐচ্ছিক প্রদান ActionCodeSettings অবজেক্ট। অপারেশনটি ইমেল অ্যাকশন লিঙ্কের মাধ্যমে সমাধান করা হবে। ব্যবহৃত ইমেইল একটি বিদ্যমান ব্যবহারকারীর অন্তর্গত হতে হবে।

Node.js

// Admin SDK API to generate the email verification link.
const useremail = 'user@example.com';
admin
  .auth()
  .generateEmailVerificationLink(useremail, actionCodeSettings)
  .then((link) => {
    // Construct email verification template, embed the link and send
    // using custom SMTP server.
    return sendCustomVerificationEmail(useremail, displayName, link);
  })
  .catch((error) => {
    // Some error occurred.
  });

জাভা

String email = "user@example.com";
try {
  String link = FirebaseAuth.getInstance().generateEmailVerificationLink(
      email, actionCodeSettings);
  // Construct email verification template, embed the link and send
  // using custom SMTP server.
  sendCustomEmail(email, displayName, link);
} catch (FirebaseAuthException e) {
  System.out.println("Error generating email link: " + e.getMessage());
}

পাইথন

email = 'user@example.com'
link = auth.generate_email_verification_link(email, action_code_settings)
# Construct email from a template embedding the link, and send
# using a custom SMTP server.
send_custom_email(email, link)

যাওয়া

email := "user@example.com"
link, err := client.EmailVerificationLinkWithSettings(ctx, email, actionCodeSettings)
if err != nil {
	log.Fatalf("error generating email link: %v\n", err)
}

// Construct email verification template, embed the link and send
// using custom SMTP server.
sendCustomEmail(email, displayName, link)

সি#

var email = "user@example.com";
var link = await FirebaseAuth.DefaultInstance.GenerateEmailVerificationLinkAsync(
    email, actionCodeSettings);
// Construct email verification template, embed the link and send
// using custom SMTP server.
SendCustomEmail(email, displayName, link);

লিঙ্কটি জেনারেট হওয়ার পরে, এটি কাস্টম ভেরিফিকেশন ইমেলে ertedোকানো যায় এবং তারপর একটি কাস্টম SMTP সার্ভার ব্যবহার করে সংশ্লিষ্ট ব্যবহারকারীকে ইমেল করা যায়।

আপনাকে ডিফল্ট ইমেল যাচাইয়ের অবতরণ পাতা ব্যবহার না করেন তাহলে আপনার নিজের কাস্টম হ্যান্ডলার বিল্ডিং দেখতে কাস্টম ইমেল কর্ম হ্যান্ডেলার তৈরি

আগে আপনি ইমেইল লিঙ্ক সাইন-ইন ব্যবহারকারীদের পরিচয় প্রমাণ করতে পারে, আপনি প্রয়োজন হবে ইমেইল লিঙ্ক সাইন-ইন সক্ষম আপনার Firebase প্রকল্পের জন্য।

একটি সাইন ইন লিঙ্ক তৈরি করতে হলে, ব্যবহারকারীর ইমেইল এবং একটি ActionCodeSettings আপত্তি। ActionCodeSettings বস্তুর ব্যবহারকারী যেখানে ফিরে যাওয়ার পর লিংক সাইন-ইন সমাপ্তির জন্য ক্লিক করা হয় তথ্য জোগানোর জন্য এই ক্ষেত্রে প্রয়োজন হয়। অপারেশনটি ইমেল অ্যাকশন লিঙ্কের মাধ্যমে সমাধান করা হবে।

পাসওয়ার্ড রিসেট এবং ইমেইল ভেরিফিকেশনের বিপরীতে, ব্যবহৃত ইমেইলটি অপরিহার্যভাবে একজন বিদ্যমান ব্যবহারকারীর প্রয়োজন হয় না, কারণ এই অপারেশনটি ইমেল লিঙ্কের মাধ্যমে আপনার অ্যাপে নতুন ব্যবহারকারীদের সাইন আপ করতে ব্যবহার করা যেতে পারে।

Node.js

// Admin SDK API to generate the sign in with email link.
const usremail = 'user@example.com';
admin
  .auth()
  .generateSignInWithEmailLink(usremail, actionCodeSettings)
  .then((link) => {
    // Construct sign-in with email link template, embed the link and
    // send using custom SMTP server.
    return sendSignInEmail(usremail, displayName, link);
  })
  .catch((error) => {
    // Some error occurred.
  });

জাভা

String email = "user@example.com";
try {
  String link = FirebaseAuth.getInstance().generateSignInWithEmailLink(
      email, actionCodeSettings);
  // Construct email verification template, embed the link and send
  // using custom SMTP server.
  sendCustomEmail(email, displayName, link);
} catch (FirebaseAuthException e) {
  System.out.println("Error generating email link: " + e.getMessage());
}

পাইথন

email = 'user@example.com'
link = auth.generate_sign_in_with_email_link(email, action_code_settings)
# Construct email from a template embedding the link, and send
# using a custom SMTP server.
send_custom_email(email, link)

যাওয়া

email := "user@example.com"
link, err := client.EmailSignInLink(ctx, email, actionCodeSettings)
if err != nil {
	log.Fatalf("error generating email link: %v\n", err)
}

// Construct sign-in with email link template, embed the link and send
// using custom SMTP server.
sendCustomEmail(email, displayName, link)

সি#

var email = "user@example.com";
var link = await FirebaseAuth.DefaultInstance.GenerateSignInWithEmailLinkAsync(
    email, actionCodeSettings);
// Construct email verification template, embed the link and send
// using custom SMTP server.
SendCustomEmail(email, displayName, link);

লিঙ্কটি তৈরি হওয়ার পরে, এটি কাস্টম সাইন-ইন ইমেলের মধ্যে ertedোকানো যেতে পারে এবং তারপর একটি কাস্টম SMTP সার্ভার ব্যবহার করে সংশ্লিষ্ট ব্যবহারকারীকে ইমেল করা যেতে পারে।

সম্পর্কে আরও জানুন ইমেল লিঙ্ক ব্যবহার Firebase ব্যবহারকারীদের অনুমোদন । এটি ব্যবহারকারীর লিঙ্কে ক্লিক করার পরে এবং অ্যাপে পুন redনির্দেশিত হওয়ার পরে কীভাবে সাইন-ইন সম্পূর্ণ করতে হবে সে সম্পর্কে তথ্য সরবরাহ করতে সহায়তা করবে।