মোবাইল অ্যাপ্লিকেশানগুলিকে কখনও কখনও ব্যবহারকারীদের সাথে ইন্টারঅ্যাক্ট করতে হয় এবং ইমেল পাঠানোর মাধ্যমে নির্দিষ্ট পদক্ষেপ নিতে তাদের অনুরোধ করতে হয়।
Firebase ক্লায়েন্ট SDK ব্যবহারকারীদের ইমেল পাঠানোর ক্ষমতা প্রদান করে যাতে তারা পাসওয়ার্ড রিসেট, ইমেল ঠিকানা যাচাইকরণ এবং ইমেল-ভিত্তিক সাইন-ইন করার জন্য ব্যবহার করতে পারে এমন লিঙ্কগুলি সহ ইমেল পাঠাতে পারে। এই টেমপ্লেট-ভিত্তিক ইমেলগুলি Google দ্বারা পাঠানো হয় এবং সীমিত কাস্টমাইজযোগ্যতা রয়েছে৷
আপনি যদি পরিবর্তে আপনার নিজস্ব ইমেল টেমপ্লেট এবং আপনার নিজস্ব ইমেল বিতরণ পরিষেবা ব্যবহার করতে চান তবে এই পৃষ্ঠাটি ব্যাখ্যা করে যে কীভাবে ফায়ারবেস অ্যাডমিন SDK ব্যবহার করে উপরের ফ্লোগুলির জন্য অ্যাকশন লিঙ্কগুলিকে প্রোগ্রাম্যাটিকভাবে তৈরি করতে হয়, যা আপনি আপনার ব্যবহারকারীদের ইমেলে অন্তর্ভুক্ত করতে পারেন।
এটি নিম্নলিখিত সুবিধাগুলির সাথে আসে:
- ইমেল টেমপ্লেট কাস্টমাইজ করুন। এর মধ্যে রয়েছে নতুন শৈলী এবং কাস্টম ব্র্যান্ডিং যোগ করার ক্ষমতা, শব্দ এবং লোগো পরিবর্তন, পুরো নামের পরিবর্তে প্রথম নামে ব্যবহারকারীদের সম্বোধন করা ইত্যাদি।
- প্রসঙ্গের উপর নির্ভর করে বিভিন্ন টেমপ্লেট প্রয়োগ করুন। উদাহরণস্বরূপ, যদি ব্যবহারকারী একটি নিউজলেটারে সদস্যতা নেওয়ার জন্য তাদের ইমেল যাচাই করে থাকেন, তাহলে ইমেল সামগ্রীতে প্রসঙ্গটি প্রদান করা প্রয়োজন হতে পারে। আরেকটি উদাহরণ হল ইমেল লিঙ্ক সাইন ইন: একটি পরিস্থিতিতে এটি একই ব্যবহারকারীর দ্বারা ট্রিগার হতে পারে, বা অন্য ব্যবহারকারীর আমন্ত্রণ হিসাবে। প্রসঙ্গটি ইমেলে অন্তর্ভুক্ত করা দরকার।
- কাস্টমাইজড ইমেল টেমপ্লেট স্থানীয়করণ.
- একটি সুরক্ষিত সার্ভার পরিবেশ থেকে লিঙ্ক তৈরি করার ক্ষমতা।
- একটি মোবাইল অ্যাপ বা ব্রাউজারের মাধ্যমে কীভাবে লিঙ্কটি খুলতে হবে এবং কীভাবে অতিরিক্ত রাষ্ট্রীয় তথ্য পাস করতে হবে ইত্যাদি কাস্টমাইজ করার ক্ষমতা।
- ইমেল অ্যাকশন লিঙ্ক তৈরি করার সময় মোবাইল অ্যাপ প্রবাহের জন্য ব্যবহৃত মোবাইল লিঙ্ক ডোমেনটি কাস্টমাইজ করার ক্ষমতা।
ActionCodeSettings আরম্ভ করুন
আপনি একটি ইমেল অ্যাকশন লিঙ্ক তৈরি করার আগে, আপনাকে একটি ActionCodeSettings
ইনস্ট্যান্স শুরু করতে হতে পারে।
ActionCodeSettings
আপনাকে একটি অবিরত ইউআরএলের মাধ্যমে অতিরিক্ত অবস্থা পাস করার অনুমতি দেয় যা ব্যবহারকারী ইমেল লিঙ্কে ক্লিক করার পরে অ্যাক্সেসযোগ্য। এটি ব্যবহারকারীকে অ্যাকশন শেষ হওয়ার পরে অ্যাপে ফিরে যাওয়ার ক্ষমতাও প্রদান করে। উপরন্তু, আপনি ইমেল অ্যাকশন লিঙ্কটি সরাসরি একটি মোবাইল অ্যাপ্লিকেশন থেকে পরিচালনা করবেন কিনা তা নির্দিষ্ট করতে পারেন যখন এটি ইনস্টল করা হয় বা একটি ব্রাউজার থেকে৷
যে লিঙ্কগুলি একটি মোবাইল অ্যাপের মাধ্যমে খোলার জন্য, আপনার মোবাইল অ্যাপ থেকে এই লিঙ্কগুলি সনাক্ত করার জন্য আপনাকে কিছু কাজ করতে হবে৷ ইমেল ক্রিয়াকলাপের জন্য মোবাইল লিঙ্কগুলি কীভাবে কনফিগার করতে হয় তার নির্দেশাবলী পড়ুন।
একটি ActionCodeSettings
ইনস্ট্যান্স শুরু করতে, নিম্নলিখিত ডেটা প্রদান করুন:
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
url | স্ট্রিং | লিঙ্ক সেট করে (স্টেট/কন্টিনিউ ইউআরএল) যার বিভিন্ন প্রসঙ্গে বিভিন্ন অর্থ রয়েছে:
|
iOS | ({bundleId: string}|অনির্ধারিত) | Firebase Authentication সাহায্য করার জন্য iOS বান্ডেল আইডি সেট করে যে এটি একটি শুধুমাত্র ওয়েব বা মোবাইল লিঙ্ক তৈরি করবে যা একটি Apple ডিভাইসে খোলা হবে। |
android | ({packageName: string, installApp:boolean|undefined, minimumVersion: string|undefined}|undefined) | Firebase Authentication সাহায্য করার জন্য Android প্যাকেজের নাম সেট করে যে এটি একটি শুধুমাত্র-ওয়েব বা মোবাইল লিঙ্ক তৈরি করবে যা একটি Android ডিভাইসে খোলা হবে |
handleCodeInApp | (বুলিয়ান|অনির্ধারিত) | ইমেল অ্যাকশন লিঙ্কটি প্রথমে একটি মোবাইল অ্যাপে বা একটি ওয়েব লিঙ্কে খোলা হবে কিনা। ডিফল্ট মিথ্যা. সত্য হিসাবে সেট করা হলে, অ্যাকশন কোড লিঙ্কটি একটি ইউনিভার্সাল লিঙ্ক বা অ্যান্ড্রয়েড অ্যাপ লিঙ্ক হিসাবে পাঠানো হবে এবং ইনস্টল করা থাকলে অ্যাপটি খোলা হবে। মিথ্যা ক্ষেত্রে, কোডটি প্রথমে ওয়েব উইজেটে পাঠানো হবে এবং তারপর চালু থাকলে অ্যাপটিতে পুনঃনির্দেশ করা হবে। |
linkDomain | (স্ট্রিং|অনির্ধারিত) | যখন একটি প্রকল্পের জন্য কাস্টম হোস্টিং লিঙ্ক ডোমেনগুলি সংজ্ঞায়িত করা হয়, নির্দিষ্ট মোবাইল অ্যাপ দ্বারা লিঙ্কটি খোলার সময় কোনটি ব্যবহার করতে হবে তা নির্দিষ্ট করুন৷ অন্যথায়, ডিফল্ট ডোমেন স্বয়ংক্রিয়ভাবে নির্বাচিত হয় (উদাহরণস্বরূপ,PROJECT_ID .firebaseapp.com )। |
dynamicLinkDomain | (স্ট্রিং|অনির্ধারিত) | অবচয়। এই প্যারামিটার নির্দিষ্ট করবেন না। |
নিম্নলিখিত উদাহরণটি ব্যাখ্যা করে যে কীভাবে একটি ইমেল যাচাইকরণ লিঙ্ক পাঠাতে হয় যা প্রথমে একটি মোবাইল অ্যাপে খুলবে৷ ডিপ লিঙ্কটিতে অবিরত URL পেলোড থাকবে https://www.example.com/checkout?cartId=1234
। ব্যবহার করা কাস্টম Hosting লিঙ্ক ডোমেন হল custom-domain.com
, যা Firebase Hosting সাথে ব্যবহারের জন্য কনফিগার করা আবশ্যক।
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',
},
// The domain must be configured in Firebase Hosting and owned by the project.
linkDomain: 'custom-domain.com',
};
জাভা
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';
getAuth()
.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);
লিঙ্কটি তৈরি হওয়ার পরে, এটি কাস্টম পাসওয়ার্ড রিসেট ইমেলে ঢোকানো যেতে পারে এবং তারপর একটি কাস্টম SMTP সার্ভার ব্যবহার করে সংশ্লিষ্ট ব্যবহারকারীকে ইমেল করা যেতে পারে।
আপনি যদি ডিফল্ট পাসওয়ার্ড রিসেট ল্যান্ডিং পৃষ্ঠা ব্যবহার না করেন এবং আপনার নিজস্ব কাস্টম হ্যান্ডলার তৈরি করেন, কাস্টম ইমেল অ্যাকশন হ্যান্ডলার তৈরি করা দেখুন।
ইমেল যাচাইকরণ লিঙ্ক তৈরি করুন
একটি ইমেল যাচাইকরণ লিঙ্ক তৈরি করতে, বিদ্যমান ব্যবহারকারীর যাচাই না করা ইমেল এবং একটি ঐচ্ছিক ActionCodeSettings
অবজেক্ট প্রদান করুন। ইমেল অ্যাকশন লিঙ্কের মাধ্যমে অপারেশনটি সমাধান হবে। ব্যবহৃত ইমেলটি অবশ্যই বিদ্যমান ব্যবহারকারীর অন্তর্গত।
Node.js
// Admin SDK API to generate the email verification link.
const useremail = 'user@example.com';
getAuth()
.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);
লিঙ্কটি তৈরি হওয়ার পরে, এটি কাস্টম যাচাইকরণ ইমেলে ঢোকানো যেতে পারে এবং তারপর একটি কাস্টম SMTP সার্ভার ব্যবহার করে সংশ্লিষ্ট ব্যবহারকারীকে ইমেল করা যেতে পারে।
আপনি যদি ডিফল্ট ইমেল যাচাইকরণ ল্যান্ডিং পৃষ্ঠা ব্যবহার না করেন এবং আপনার নিজস্ব কাস্টম হ্যান্ডলার তৈরি না করেন, কাস্টম ইমেল অ্যাকশন হ্যান্ডলার তৈরি করা দেখুন।
সাইন-ইন করার জন্য ইমেল লিঙ্ক তৈরি করুন
আপনি ইমেল লিঙ্ক সাইন-ইন সহ ব্যবহারকারীদের প্রমাণীকরণ করার আগে, আপনাকে আপনার Firebase প্রকল্পের জন্য ইমেল লিঙ্ক সাইন-ইন সক্ষম করতে হবে।
একটি সাইন-ইন লিঙ্ক তৈরি করতে, ব্যবহারকারীর ইমেল এবং একটি ActionCodeSettings
অবজেক্ট প্রদান করুন। সাইন-ইন সম্পূর্ণ করার জন্য লিঙ্কটিতে ক্লিক করার পরে ব্যবহারকারীকে কোথায় ফিরতে হবে সে সম্পর্কে তথ্য প্রদান করার জন্য এই ক্ষেত্রে ActionCodeSettings
অবজেক্টের প্রয়োজন। ইমেল অ্যাকশন লিঙ্কের মাধ্যমে অপারেশনটি সমাধান হবে।
পাসওয়ার্ড রিসেট এবং ইমেল যাচাইকরণের বিপরীতে, ব্যবহৃত ইমেলটি অগত্যা কোনও বিদ্যমান ব্যবহারকারীর অন্তর্গত হওয়ার প্রয়োজন নেই, কারণ এই অপারেশনটি ইমেল লিঙ্কের মাধ্যমে আপনার অ্যাপে নতুন ব্যবহারকারীদের সাইন আপ করতে ব্যবহার করা যেতে পারে।
Node.js
// Admin SDK API to generate the sign in with email link.
const useremail = 'user@example.com';
getAuth()
.generateSignInWithEmailLink(useremail, actionCodeSettings)
.then((link) => {
// Construct sign-in with email link template, embed the link and
// send using custom SMTP server.
return sendSignInEmail(useremail, 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);
লিঙ্কটি তৈরি হওয়ার পরে, এটি কাস্টম সাইন-ইন ইমেলে ঢোকানো যেতে পারে এবং তারপর একটি কাস্টম SMTP সার্ভার ব্যবহার করে সংশ্লিষ্ট ব্যবহারকারীকে ইমেল করা যেতে পারে।
ইমেল লিঙ্ক ব্যবহার করে Firebase ব্যবহারকারীদের প্রমাণীকরণ সম্পর্কে আরও জানুন। এটি ব্যবহারকারীর লিঙ্কে ক্লিক করার পরে এবং অ্যাপে পুনঃনির্দেশিত হওয়ার পরে কীভাবে সাইন-ইন সম্পূর্ণ করবেন সে সম্পর্কে তথ্য সরবরাহ করতে সহায়তা করবে৷