หากแอปที่ใช้ Smart Lock สำหรับรหัสผ่านแชร์ฐานข้อมูลผู้ใช้กับ หรือในกรณีที่แอปและเว็บไซต์ของคุณใช้ผู้ให้บริการการลงชื่อเข้าใช้แบบรวมศูนย์ Google Sign-In คุณสามารถเชื่อมโยงแอปกับเว็บไซต์ ผู้ใช้จะบันทึกข้อมูลเข้าสู่ระบบเพียงครั้งเดียว จากนั้นจะลงชื่อเข้าใช้ทั้ง และเว็บไซต์
หากต้องการเชื่อมโยงแอปกับเว็บไซต์ ให้ประกาศการเชื่อมโยงโดยโฮสต์ ไฟล์ JSON ของลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ในเว็บไซต์ และ การเพิ่มลิงก์ไปยังไฟล์ลิงก์เนื้อหาดิจิทัล (Digital Asset Link) ไปยังไฟล์ Manifest ของแอป
การโฮสต์ประกาศลิงก์เนื้อหาดิจิทัลในเว็บไซต์หมายความว่าคุณเปิดใช้ เว็บไซต์ของคุณเพื่อแชร์การป้อนข้อความอัตโนมัติ กับแอปของคุณเมื่อใช้บน Android 8.0 ขึ้นไป
ข้อกำหนดเบื้องต้น
โดเมนสำหรับลงชื่อเข้าใช้ของเว็บไซต์ต้องใช้งานผ่าน HTTPS ได้
เชื่อมโยงแอปกับเว็บไซต์
- สร้างไฟล์ JSON สำหรับลิงก์เนื้อหาดิจิทัล - เช่น เพื่อประกาศว่าเว็บไซต์ - https://signin.example.comและ แอป Android ที่มีชื่อแพ็กเกจ- com.exampleสามารถแชร์การลงชื่อเข้าใช้ได้ ข้อมูลเข้าสู่ระบบ ให้สร้างไฟล์ชื่อ- 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คืออาร์เรย์ของสตริงอย่างน้อย 1 สตริงที่อธิบาย กำลังประกาศความสัมพันธ์ เพื่อประกาศว่าแอปและเว็บไซต์ใช้การลงชื่อเข้าใช้ร่วมกัน ข้อมูลเข้าสู่ระบบ ให้ระบุสตริง- delegate_permission/common.get_login_creds- ช่อง - targetคือออบเจ็กต์ที่ระบุการประกาศเนื้อหา ที่เกี่ยวข้อง ฟิลด์ต่อไปนี้ระบุเว็บไซต์- namespace- web- site- URL ของเว็บไซต์ในรูปแบบ - https://domain[:optional_port]; สำหรับ ตัวอย่างเช่น- https://www.example.com- domain ต้องเป็นแบบเต็มและ ต้องละเว้น optional_port เมื่อใช้พอร์ต 443 สำหรับ HTTPS - เป้าหมาย - siteเป็นโดเมนรากได้เท่านั้น คุณไม่สามารถ ให้จำกัดการเชื่อมโยงแอปไว้เฉพาะไดเรกทอรีย่อยที่เจาะจงเท่านั้น อย่าใส่ ใน URL เช่น เครื่องหมายทับปิดท้าย- โดเมนย่อยไม่ถือว่าตรงกัน กล่าวคือ ถ้าคุณระบุ domain เป็น - www.example.com, โดเมน- www.counter.example.comไม่ได้เชื่อมโยงกับแอปของคุณ- ฟิลด์ต่อไปนี้จะระบุแอป Android - namespace- android_app- package_name- ชื่อแพ็กเกจที่ประกาศในไฟล์ Manifest ของแอป ตัวอย่างเช่น - com.example.android- sha256_cert_fingerprints- ลายนิ้วมือ SHA256 ของใบรับรองที่ลงนามของแอป คุณสามารถ ใช้คำสั่งต่อไปนี้เพื่อสร้างลายนิ้วมือ - $ keytool -list -v -keystore my-release-key.keystore - ดูข้อมูลอ้างอิงเกี่ยวกับลิงก์เนื้อหาดิจิทัล เพื่อดูรายละเอียด 
- โฮสต์ไฟล์ JSON ของลิงก์เนื้อหาดิจิทัล (Digital Assets Link) ไว้ที่ตำแหน่งต่อไปนี้ใน โดเมนที่ลงชื่อเข้าใช้: - 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 Agent เรียกข้อมูล- /.well-known/assetlinks.jsonเว็บไซต์ส่วนใหญ่สามารถอนุญาต Agent อัตโนมัติเพื่อเรียกดูไฟล์ในเส้นทาง- /.well-known/เพื่อให้ บริการสามารถเข้าถึงข้อมูลเมตาในไฟล์เหล่านั้นได้:- User-agent: * Allow: /.well-known/ 
- ประกาศการเชื่อมโยงในแอป Android - เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ Manifest ในส่วน - <application>- <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
- เพิ่มทรัพยากรสตริง - asset_statementsลงในไฟล์- strings.xmlสตริง- 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 จะตรวจสอบเป็นระยะๆ ว่าแอฟฟิลิเอตหรือไม่ ที่ส่งผ่านแบบฟอร์มนั้นใช้ได้ผลจริงๆ และอาจติดต่อคุณในกรณี ปัญหา 
เมื่อการยืนยันเสร็จสมบูรณ์ ผู้ใช้แอปจะสามารถบันทึกข้อมูลเข้าสู่ระบบของตนใน แอปหรือเว็บไซต์ของคุณและลงชื่อเข้าใช้ทั้ง 2 ที่โดยอัตโนมัติ
ตัวอย่าง: เชื่อมโยงแอปหลายรายการกับเว็บไซต์
คุณสามารถเชื่อมโยงแอปหลายแอปกับเว็บไซต์ โดยระบุแต่ละแอปใน
ไฟล์ Digital Assets Link ตัวอย่างเช่น หากต้องการเชื่อมโยง com.example กับ
com.example.pro แอปที่มีเว็บไซต์ที่ https://signin.example.com/ โปรดระบุ
ทั้ง 2 แอปในไฟล์ 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"
    ]
  }
}]
จากนั้นให้ประกาศการเชื่อมโยงในทั้ง 2 แอป ดังนี้
- เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ Manifest ในส่วน - <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>
ตัวอย่าง: เชื่อมโยงแอปกับหลายเว็บไซต์
คุณสามารถเชื่อมโยงแอปกับหลายเว็บไซต์ได้โดยระบุแต่ละเว็บไซต์ใน
ไฟล์ Digital Assets Link และโฮสต์ไฟล์ดังกล่าวในเว็บไซต์แต่ละแห่ง ตัวอย่างเช่น หากต้องการ
เชื่อมโยงแอป 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"
}]
สุดท้าย ให้ประกาศการเชื่อมโยงในทั้ง 2 แอป ดังนี้
- เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ Manifest ในส่วน - <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>