अगर आपका ऐप्लिकेशन, 'पासवर्ड के लिए Smart Lock' सुविधा का इस्तेमाल करता है, तो वह आपके साथ उपयोगकर्ता डेटाबेस शेयर करता है वेबसाइट—या अगर आपका ऐप्लिकेशन और वेबसाइट, फ़ेडरेटेड साइन-इन प्रोवाइडर का इस्तेमाल करते हैं, तो के रूप में—आपके पास ऐप्लिकेशन को वेबसाइट से जोड़ने का विकल्प होता है, ताकि उपयोगकर्ता अपने क्रेडेंशियल एक बार सेव करते हैं और फिर दोनों में अपने-आप साइन इन हो जाते हैं के ऐप्लिकेशन और वेबसाइट पर दिखती हैं.
किसी ऐप्लिकेशन को वेबसाइट से जोड़ने के लिए, आपकी वेबसाइट पर मौजूद डिजिटल ऐसेट लिंक 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
टारगेट सिर्फ़ रूट डोमेन हो सकता है: नहीं किसी खास सबडायरेक्ट्री के लिए, ऐप्लिकेशन असोसिएशन को सीमित करना. शामिल न करें पाथ, जैसे कि ट्रेलिंग स्लैश.सबडोमेन को मैच नहीं माना जाता है: इसका मतलब है कि अगर आपने
www.example.com
के तौर पर domain, डोमेन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 समय-समय पर यह देखता है कि जुड़ाव फ़ॉर्म के ज़रिए सबमिट किया गया कॉन्टेंट काम करता है. साथ ही, अगर ऐसा है, तो वह आपसे संपर्क कर सकता है समस्याएं.
पुष्टि होने के बाद, आपके ऐप्लिकेशन के उपयोगकर्ता अपने क्रेडेंशियल यहां सेव कर सकते हैं आपके ऐप्लिकेशन या वेबसाइट में से किसी एक को चुनें और दोनों में अपने-आप साइन इन हो जाएं.
उदाहरण: एक से ज़्यादा ऐप्लिकेशन को एक वेबसाइट से जोड़ना
एक से ज़्यादा ऐप्लिकेशन को किसी वेबसाइट से जोड़ा जा सकता है. ऐसा करने के लिए,
डिजिटल ऐसेट के लिंक की फ़ाइल. उदाहरण के लिए, com.example
और
com.example.pro
ऐप्लिकेशन जो https://signin.example.com/
पर साइट के साथ हैं, जानकारी दें
यहां होस्ट की गई JSON फ़ाइल में दोनों ऐप्लिकेशन
https://signin.example.com/.well-known/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": "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/
के बारे में बताएं
यहां होस्ट की गई JSON फ़ाइल में ऐप्लिकेशन और दोनों साइटों पर
https://signin.example.com/.well-known/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": "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"
]
}
}]
इसके बाद, यहां होस्ट की गई JSON फ़ाइल में
https://m.example.com/.well-known/assetlinks.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>