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

ईमेल एक्शन लिंक बनाना

मोबाइल ऐप्स को कभी-कभी उपयोगकर्ताओं के साथ बातचीत करने और उन्हें ईमेल भेजकर कुछ कार्रवाई करने के लिए प्रेरित करने की आवश्यकता होती है।

Firebase व्यवस्थापक SDKs उन लिंक वे पासवर्ड फिर सेट करता है, ईमेल पते का सत्यापन, और के लिए उपयोग कर सकते हैं युक्त ईमेल भेजने के लिए क्षमता प्रदान करते हैं ईमेल आधारित साइन-इन। ये ईमेल Google द्वारा भेजे गए हैं और इनमें सीमित अनुकूलन क्षमता है।

यदि आप इसके बजाय अपने स्वयं के ईमेल टेम्प्लेट और अपनी स्वयं की ईमेल वितरण सेवा का उपयोग करना चाहते हैं, तो आप उपरोक्त प्रवाहों के लिए प्रोग्रामेटिक रूप से कार्रवाई लिंक जेनरेट करने के लिए Firebase Admin SDK का उपयोग कर सकते हैं, जिसे आप अपने उपयोगकर्ताओं को ईमेल में शामिल कर सकते हैं।

यह निम्नलिखित लाभों के साथ आता है:

  • ईमेल टेम्प्लेट कस्टमाइज़ करें। इसमें नई शैलियों और कस्टम ब्रांडिंग को जोड़ने, शब्दों और लोगो को बदलने, उपयोगकर्ताओं को पूरे नाम के बजाय पहले नाम से संबोधित करने आदि की क्षमता शामिल है।
  • संदर्भ के आधार पर विभिन्न टेम्पलेट लागू करें। उदाहरण के लिए, यदि उपयोगकर्ता न्यूज़लेटर की सदस्यता लेने के लिए अपने ईमेल का सत्यापन कर रहा है, तो ईमेल सामग्री में संदर्भ प्रदान करने की आवश्यकता हो सकती है। एक अन्य उदाहरण ईमेल लिंक साइन इन है: एक परिदृश्य में इसे उसी उपयोगकर्ता द्वारा, या किसी अन्य उपयोगकर्ता द्वारा आमंत्रण के रूप में ट्रिगर किया जा सकता है। संदर्भ को ईमेल में शामिल करने की आवश्यकता होगी।
  • अनुकूलित ईमेल टेम्प्लेट का स्थानीयकरण करें।
  • एक सुरक्षित सर्वर वातावरण से लिंक उत्पन्न करने की क्षमता।
  • मोबाइल ऐप या ब्राउज़र के माध्यम से लिंक को कैसे खोला जाए, और अतिरिक्त राज्य की जानकारी कैसे पास की जाए, आदि को अनुकूलित करने की क्षमता।
  • ईमेल क्रिया लिंक का निर्माण करते समय मोबाइल एप्लिकेशन प्रवाह के लिए उपयोग किए जाने वाले डायनेमिक लिंक डोमेन को कस्टमाइज़ करने की क्षमता, और यहां तक ​​कि संदर्भ या मोबाइल ऐप के आधार पर एक अलग डायनेमिक लिंक डोमेन निर्दिष्ट करने की क्षमता।

एक्शनकोड सेटिंग्स को इनिशियलाइज़ करें

इससे पहले कि आप एक ईमेल कार्रवाई लिंक उत्पन्न कर सकते हैं, तो आप एक प्रारंभ करने की आवश्यकता हो सकती ActionCodeSettings उदाहरण।

ActionCodeSettings आप अतिरिक्त राज्य के माध्यम से एक यूआरएल जो पहुँचा जा सकता है उपयोगकर्ता ईमेल लिंक पर क्लिक करता बाद जारी पारित करने के लिए अनुमति देते हैं। यह उपयोगकर्ता को कार्रवाई पूरी होने के बाद ऐप पर वापस जाने की क्षमता भी प्रदान करता है। इसके अलावा, आप यह निर्दिष्ट कर सकते हैं कि ईमेल एक्शन लिंक को सीधे मोबाइल एप्लिकेशन से हैंडल करना है या नहीं, जब यह इंस्टॉल हो या ब्राउज़र से।

मोबाइल ऐप के माध्यम से खोले जाने वाले लिंक के लिए, आपको अपने मोबाइल ऐप से इन लिंक का पता लगाने के लिए फायरबेस डायनेमिक लिंक सक्षम करने और कुछ कार्य करने होंगे। कैसे करने के निर्देशों का संदर्भ लें Firebase गतिशील लिंक कॉन्फ़िगर ईमेल कार्यों के लिए।

एक प्रारंभ करने में ActionCodeSettings उदाहरण के लिए, निम्न डेटा प्रदान करते हैं:

पैरामीटर प्रकार विवरण
url डोरी

लिंक सेट करता है (राज्य/जारी यूआरएल) जिसका अलग-अलग संदर्भों में अलग-अलग अर्थ हैं:

  • जब लिंक वेब कार्रवाई विजेट में नियंत्रित किया जाता है, इस में डीप लिंक है continueUrl क्वेरी पैरामीटर।
  • जब लिंक को सीधे ऐप्स में नियंत्रित किया जाता है, यह है continueUrl गतिशील लिंक के गहरे लिंक में क्वेरी पैरामीटर।
iOS ({बंडल आईडी: स्ट्रिंग}|अपरिभाषित) आईओएस बंडल आईडी सेट करता है। यदि यह स्थापित है तो यह आईओएस ऐप में लिंक को खोलने का प्रयास करेगा। आईओएस ऐप को कंसोल में पंजीकृत होना चाहिए।
android ({पैकेजनाम: स्ट्रिंग, इंस्टॉलऐप:बूलियन|अपरिभाषित, न्यूनतम संस्करण: स्ट्रिंग|अपरिभाषित}|अपरिभाषित) Android पैकेज का नाम सेट करता है। यदि यह स्थापित है तो यह एंड्रॉइड ऐप में लिंक को खोलने का प्रयास करेगा। यदि installApp पारित हो जाता है, यह डिवाइस यह समर्थन करता है और एप्लिकेशन पहले से ही स्थापित नहीं है, तो Android एप्लिकेशन स्थापित करने के लिए है कि क्या निर्दिष्ट करता है। इस क्षेत्र को एक के बिना प्रदान की जाती है packageName , एक त्रुटि समझा कि फेंक दिया जाता है packageName इस क्षेत्र के साथ संयोजन के रूप में प्रदान किया जाना चाहिए। यदि minimumVersion निर्दिष्ट किया जाता है, और एप्लिकेशन का पुराना संस्करण स्थापित है, तो उपयोगकर्ता एप्लिकेशन को उन्नत करने के प्ले स्टोर करने के लिए लिया जाता है। Android ऐप को कंसोल में पंजीकृत होना चाहिए।
handleCodeInApp (बूलियन|अपरिभाषित) ईमेल एक्शन लिंक को मोबाइल ऐप में खोला जाएगा या पहले वेब लिंक में। डिफॉल्ट गलत है। जब सही पर सेट किया जाता है, तो एक्शन कोड लिंक को यूनिवर्सल लिंक या एंड्रॉइड ऐप लिंक के रूप में भेजा जाएगा और इंस्टॉल होने पर ऐप द्वारा खोला जाएगा। झूठे मामले में, कोड पहले वेब विजेट पर भेजा जाएगा और फिर जारी रखने पर इंस्टॉल होने पर ऐप पर रीडायरेक्ट कर दिया जाएगा।
dynamicLinkDomain (स्ट्रिंग | अपरिभाषित) डायनामिक लिंक डोमेन (या सबडोमेन) को वर्तमान लिंक के लिए उपयोग करने के लिए सेट करता है यदि इसे फायरबेस डायनेमिक लिंक का उपयोग करके खोला जाना है। चूंकि प्रति प्रोजेक्ट कई डायनामिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं, इसलिए यह फ़ील्ड स्पष्ट रूप से किसी एक को चुनने की क्षमता प्रदान करती है। यदि कोई प्रदान नहीं किया जाता है, तो सबसे पुराना डोमेन डिफ़ॉल्ट रूप से उपयोग किया जाता है।

निम्नलिखित उदाहरण बताता है कि है कि एक Firebase गतिशील लिंक (iOS एप्लिकेशन के रूप में पहली एक मोबाइल एप्लिकेशन में खुलेगा एक ईमेल सत्यापन लिंक भेजने के लिए com.example.ios या Android एप्लिकेशन com.example.android जहां एप्लिकेशन यदि पहले से ही स्थापित नहीं स्थापित हो जाएगा और न्यूनतम संस्करण 12 है)। गहरी जारी रखें लिंक यूआरएल पेलोड शामिल होंगे 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';
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);

लिंक जनरेट होने के बाद, इसे कस्टम पासवर्ड रीसेट ईमेल में डाला जा सकता है और फिर कस्टम एसएमटीपी सर्वर का उपयोग करके संबंधित उपयोगकर्ता को ईमेल किया जा सकता है।

आप डिफ़ॉल्ट पासवर्ड रीसेट लैंडिंग पृष्ठ का उपयोग नहीं कर रहे हैं, तो और अपने स्वयं के कस्टम हैंडलर के निर्माण, देखें कस्टम ईमेल कार्रवाई संचालकों बनाने

एक ईमेल सत्यापन लिंक उत्पन्न करने के लिए, मौजूदा उपयोगकर्ता के असत्यापित ईमेल और एक वैकल्पिक प्रदान 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 usremail = 'user@example.com';
getAuth()
  .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);

लिंक जेनरेट होने के बाद, इसे कस्टम साइन-इन ईमेल में डाला जा सकता है और फिर कस्टम एसएमटीपी सर्वर का उपयोग करके संबंधित उपयोगकर्ता को ईमेल किया जा सकता है।

बारे में और जानें ईमेल लिंक का उपयोग कर Firebase साथ उपयोगकर्ताओं को प्रमाणीकृत । यह उपयोगकर्ता द्वारा लिंक पर क्लिक करने और ऐप पर वापस रीडायरेक्ट किए जाने के बाद साइन-इन को पूरा करने के तरीके के बारे में जानकारी प्रदान करने में मदद करेगा।