Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

ईमेल कार्रवाई लिंक उत्पन्न करना

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

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

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

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

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

एक्शनकोड को सेट करें

इससे पहले कि आप एक ईमेल एक्शन लिंक उत्पन्न कर सकें, आपको ActionCodeSettings इंस्टेंस को इनिशियलाइज़ करना पड़ सकता है।

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

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

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

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

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

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

निम्न उदाहरण दिखाता है कि ईमेल सत्यापन लिंक कैसे भेजा जाए जो एक मोबाइल ऐप में सबसे पहले फायरबेस डायनेमिक लिंक (iOS ऐप com.example.ios या Android ऐप com.example.android रूप में खुलेगा जहां ऐप पहले से इंस्टॉल नहीं होने पर इंस्टॉल हो जाएगा न्यूनतम संस्करण 12 है)। गहरी लिंक में जारी URL पेलोड https://www.example.com/checkout?cartId=1234 । उपयोग किया गया डायनामिक लिंक डोमेन coolapp.page.link , जिसे coolapp.page.link डायनेमिक लिंक के साथ उपयोग करने के लिए कॉन्फ़िगर किया जाना चाहिए।

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(email, 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 password reset link.
const email = 'user@example.com';
admin
  .auth()
  .generatePasswordResetLink(email, actionCodeSettings)
  .then((link) => {
    // Construct password reset email template, embed the link and send
    // using custom SMTP server.
    return sendCustomPasswordResetEmail(email, displayName, link);
  })
  .catch((error) => {
    // Some error occurred.
  });

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

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

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

इससे पहले कि आप उपयोगकर्ताओं को ईमेल लिंक साइन-इन के साथ प्रमाणित कर सकें, आपको अपने फायरबेस प्रोजेक्ट के लिए ईमेल लिंक साइन-इन को सक्षम करना होगा।

एक साइन-इन लिंक उत्पन्न करने के लिए, उपयोगकर्ता का ईमेल और एक 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);

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

ईमेल लिंक का उपयोग करके फायरबेस वाले उपयोगकर्ताओं को प्रमाणित करने के बारे में अधिक जानें। यह उपयोगकर्ता को लिंक पर क्लिक करने के बाद साइन-इन को पूरा करने के तरीके के बारे में जानकारी प्रदान करने में मदद करेगा और इसे ऐप पर वापस भेज दिया जाएगा।