अगर पासवर्ड के लिए Smart Lock का इस्तेमाल करने वाला आपका ऐप्लिकेशन, आपकी वेबसाइट के साथ उपयोगकर्ता डेटाबेस शेयर करता है या अगर आपका ऐप्लिकेशन और वेबसाइट, 'Google साइन-इन' जैसे फ़ेडरेटेड साइन-इन प्रोवाइडर का इस्तेमाल करता है, तो आप ऐप्लिकेशन को वेबसाइट से जोड़ सकते हैं. इससे उपयोगकर्ता एक बार अपने क्रेडेंशियल सेव करके, ऐप्लिकेशन और वेबसाइट, दोनों में अपने-आप साइन इन हो जाएंगे.
किसी ऐप्लिकेशन को किसी वेबसाइट से जोड़ने के लिए, अपनी वेबसाइट पर डिजिटल एसेट लिंक JSON फ़ाइल होस्ट करके और अपने ऐप्लिकेशन के मेनिफ़ेस्ट में डिजिटल एसेट लिंक फ़ाइल का लिंक जोड़कर, असोसिएशन का एलान करें.
अपनी वेबसाइट पर डिजिटल एसेट लिंक का एलान होस्ट करने से, Android 8.0 या इसके बाद के वर्शन पर चलते समय, वेबसाइट के साथ ऑटोमैटिक भरने की सुविधा भी आपके ऐप्लिकेशन के साथ डेटा शेयर कर सकती है.
ज़रूरी शर्तें
आपकी वेबसाइट का साइन-इन डोमेन, एचटीटीपीएस के ज़रिए उपलब्ध होना चाहिए.
अपने ऐप्लिकेशन को अपनी वेबसाइट से जोड़ें
डिजिटल ऐसेट लिंक वाली JSON फ़ाइल बनाएं.
उदाहरण के लिए, अगर यह एलान करना है कि
https://signin.example.com
वेबसाइट औरcom.example
पैकेज नाम वाला Android ऐप्लिकेशन, साइन इन क्रेडेंशियल शेयर कर सकते हैं, तो इस कॉन्टेंट के साथassetlinks.json
नाम की फ़ाइल बनाएं:[{ "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "web", "site": "https://signin.example.com" } }, { "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "android_app", "package_name": "com.example", "sha256_cert_fingerprints": [ "F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B" ] } }]
relation
फ़ील्ड, एक या उससे ज़्यादा स्ट्रिंग का कलेक्शन है. इससे पता चलता है कि किस संबंध का एलान किया जा रहा है. यह बताने के लिए कि ऐप्लिकेशन और साइटें, साइन इन क्रेडेंशियल शेयर करती हैं, स्ट्रिंगdelegate_permission/common.get_login_creds
बताएं.target
फ़ील्ड एक ऑब्जेक्ट है, जो उस एसेट के बारे में बताता है जिस पर एलान लागू होता है. ये फ़ील्ड किसी वेबसाइट की पहचान करते हैं:namespace
web
site
वेबसाइट का यूआरएल,
https://domain[:optional_port]
फ़ॉर्मैट में. उदाहरण के लिए,https://www.example.com
.domain पूरी तरह क्वालिफ़ाइड होना चाहिए. एचटीटीपीएस के लिए पोर्ट 443 का इस्तेमाल करते समय, optional_port का इस्तेमाल नहीं करना चाहिए.
site
टारगेट सिर्फ़ रूट डोमेन हो सकता है: ऐप्लिकेशन को किसी खास सबडायरेक्ट्री के साथ जोड़ा नहीं जा सकता. यूआरएल में पाथ शामिल न करें, जैसे कि पीछे लगने वाला स्लैश.सबडोमेन को मैच नहीं माना जाता: इसका मतलब है कि अगर domain को
www.example.com
के तौर पर दिखाया जाता है, तोwww.counter.example.com
डोमेन आपके ऐप्लिकेशन से नहीं जुड़ा होता.ये फ़ील्ड Android ऐप्लिकेशन की पहचान करते हैं:
namespace
android_app
package_name
ऐप्लिकेशन के मेनिफ़ेस्ट में बताया गया पैकेज का नाम. उदाहरण के लिए, com.example.android
sha256_cert_fingerprints
आपके ऐप्लिकेशन के साइनिंग सर्टिफ़िकेट के SHA256 फ़िंगरप्रिंट. फ़िंगरप्रिंट जनरेट करने के लिए, इस निर्देश का इस्तेमाल किया जा सकता है: $ keytool -list -v -keystore my-release-key.keystore
ज़्यादा जानकारी के लिए, डिजिटल ऐसेट लिंक का रेफ़रंस देखें.
साइन-इन डोमेन में, इस जगह पर डिजिटल ऐसेट लिंक JSON फ़ाइल को होस्ट करें:
https://domain[:optional_port]/.well-known/assetlinks.json
उदाहरण के लिए, अगर आपका साइन-इन डोमेन
signin.example.com
है, तो JSON फ़ाइल कोhttps://signin.example.com/.well-known/assetlinks.json
पर होस्ट करें.डिजिटल ऐसेट लिंक की फ़ाइल का MIME टाइप, JSON होना चाहिए. पक्का करें कि सर्वर ने रिस्पॉन्स में
Content-Type: application/json
हेडर भेजा हो.देख लें कि आपका होस्ट Google को आपकी डिजिटल एसेट लिंक वाली फ़ाइल वापस पाने की अनुमति देता है. अगर आपके पास
robots.txt
फ़ाइल है, तो इसकी मदद से Googlebot एजेंट को/.well-known/assetlinks.json
वापस लाने की अनुमति मिलनी चाहिए. ज़्यादातर साइटें, किसी भी ऑटोमेटेड एजेंट को/.well-known/
पाथ से फ़ाइलें पाने की अनुमति दे सकती हैं, ताकि अन्य सेवाएं उन फ़ाइलों के मेटाडेटा को ऐक्सेस कर सकें:User-agent: * Allow: /.well-known/
Android ऐप्लिकेशन में असोसिएशन का एलान करें.
इस लाइन को
<application>
के तहत, मेनिफ़ेस्ट फ़ाइल में जोड़ें:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
strings.xml
फ़ाइल में,asset_statements
स्ट्रिंग रिसॉर्स जोड़ें.asset_statements
स्ट्रिंग एक JSON ऑब्जेक्ट है, जो लोड होने वालीassetlinks.json
फ़ाइलों के बारे में बताता है. आपको स्ट्रिंग में इस्तेमाल किए गए अपॉस्ट्रफ़ी और कोटेशन मार्क को एस्केप करना होगा. उदाहरण के लिए:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
> GET /.well-known/assetlinks.json HTTP/1.1 > User-Agent: curl/7.35.0 > Host: signin.example.com < HTTP/1.1 200 OK < Content-Type: application/json
ऐप्लिकेशन को Google Play Store पर पब्लिश करें. असोसिएशन के लिए, इसे सार्वजनिक चैनल पर रिलीज़ करना ज़रूरी है.
(ज़रूरी नहीं) 'पासवर्ड के लिए Smart Lock' अफ़िलिएशन फ़ॉर्म भरें और सबमिट करें. इससे हमें पता चलेगा कि आपने इस प्रक्रिया को पूरा कर लिया है. Google समय-समय पर इस बात की जांच करता है कि फ़ॉर्म के ज़रिए सबमिट की गई अफ़िलिएशन सही काम कर रही हैं या नहीं. अगर कोई समस्या आती है, तो Google आपसे संपर्क कर सकता है.
पुष्टि होने के बाद, आपके ऐप्लिकेशन के उपयोगकर्ता आपके ऐप्लिकेशन या वेबसाइट पर अपने क्रेडेंशियल सेव कर सकते हैं. ऐसा करने से, वे दोनों में अपने-आप साइन इन हो जाएंगे.
उदाहरण: किसी वेबसाइट के साथ कई ऐप्लिकेशन जोड़ना
किसी वेबसाइट में कई ऐप्लिकेशन जोड़े जा सकते हैं. इसके लिए, आपको डिजिटल एसेट लिंक फ़ाइल में हर ऐप्लिकेशन की जानकारी देनी होगी. उदाहरण के लिए, com.example
और
com.example.pro
ऐप्लिकेशन को https://signin.example.com/
पर मौजूद साइट से जोड़ने के लिए, https://signin.example.com/.well-known/assetlinks.json
पर होस्ट की गई JSON फ़ाइल में दोनों ऐप्लिकेशन के बारे में बताएं:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://signin.example.com"
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example.pro",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
}]
इसके बाद, दोनों ऐप्लिकेशन में असोसिएशन होने का एलान करें:
इस लाइन को
<application>
के तहत, मेनिफ़ेस्ट फ़ाइल में जोड़ें:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
strings.xml
फ़ाइल में, यह स्ट्रिंग रिसॉर्स जोड़ें:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
उदाहरण: कई वेबसाइटों से ऐप्लिकेशन जोड़ना
आप डिजिटल एसेट लिंक फ़ाइल में हर वेबसाइट के बारे में बताकर और हर वेबसाइट पर फ़ाइल को होस्ट करके, ऐप्लिकेशन को कई वेबसाइटों से जोड़ सकते हैं. उदाहरण के लिए, com.example
और com.example.pro
ऐप्लिकेशन को https://signin.example.com/
और https://m.example.com/
पर मौजूद साइट से जोड़ने के लिए, https://signin.example.com/.well-known/assetlinks.json
पर होस्ट की गई JSON फ़ाइल में दोनों ऐप्लिकेशन और दोनों साइटों के बारे में बताएं:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://signin.example.com"
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://m.example.com"
},
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example.pro",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
}]
इसके बाद, https://m.example.com/.well-known/assetlinks.json
पर होस्ट की गई JSON फ़ाइल में, डिजिटल एसेट लिंक की मुख्य फ़ाइल शामिल करें:
[{
"include": "https://signin.example.com/.well-known/assetlinks.json"
}]
आखिर में, दोनों ऐप्लिकेशन में असोसिएशन के बारे में जानकारी दें:
इस लाइन को
<application>
के तहत, मेनिफ़ेस्ट फ़ाइल में जोड़ें:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
strings.xml
फ़ाइल में, यह स्ट्रिंग रिसॉर्स जोड़ें:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>