หากการลงชื่อเข้าใช้ One Tap ตรงตามความต้องการของคุณ ให้พิจารณาใช้แทน One Tap มีประสบการณ์ผู้ใช้ที่อัปเดตและการปรับปรุงอื่นๆ

เปิดใช้งานการลงชื่อเข้าใช้อัตโนมัติในแอปและเว็บไซต์

หากแอปของคุณที่ใช้ Smart Lock สำหรับรหัสผ่านแชร์ฐานข้อมูลผู้ใช้กับเว็บไซต์ของคุณหรือหากแอปและเว็บไซต์ของคุณใช้ผู้ให้บริการลงชื่อเข้าใช้แบบรวมศูนย์เช่น Google Sign-In คุณสามารถเชื่อมโยงแอปกับเว็บไซต์เพื่อให้ผู้ใช้บันทึกข้อมูลรับรองได้ หนึ่งครั้งแล้วลงชื่อเข้าใช้ทั้งแอปและเว็บไซต์โดยอัตโนมัติ

หากต้องการเชื่อมโยงแอปกับเว็บไซต์ให้ประกาศการเชื่อมโยงโดยโฮสต์ไฟล์ Digital Asset Links JSON บนเว็บไซต์ของคุณและเพิ่มลิงก์ไปยังไฟล์ Digital Asset Link ไปยังไฟล์ Manifest ของแอป

ด้วยการโฮสต์การประกาศลิงก์สินทรัพย์ดิจิทัลบนเว็บไซต์ของคุณคุณยังเปิดใช้งานเว็บไซต์ของคุณเพื่อแบ่งปันข้อมูลการ ป้อนอัตโนมัติ กับแอปของคุณเมื่อทำงานบน Android 8.0 และใหม่กว่า

ข้อกำหนดเบื้องต้น

โดเมนสำหรับลงชื่อเข้าใช้เว็บไซต์ของคุณต้องพร้อมใช้งานผ่าน HTTPS

เชื่อมโยงแอปของคุณกับเว็บไซต์ของคุณ

  1. สร้างไฟล์ Digital Asset Links 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 คืออาร์เรย์ของสตริงอย่างน้อยหนึ่งสตริงที่อธิบายถึงความสัมพันธ์ที่กำลังประกาศ หากต้องการประกาศว่าแอปและไซต์แชร์ข้อมูลรับรองการลงชื่อเข้าใช้ให้ระบุสตริง 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 ชื่อแพ็กเกจที่ประกาศในรายการของแอป ตัวอย่างเช่น com.example.android
    sha256_cert_fingerprints ลายนิ้วมือ SHA256 ของใบรับรองการลงนามแอปของคุณ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อสร้างลายนิ้วมือ:
    $ keytool -list -v -keystore my-release-key.keystore

    ดู ข้อมูลอ้างอิงลิงก์สินทรัพย์ดิจิทัล สำหรับรายละเอียด

  2. โฮสต์ไฟล์ Digital Assets Link JSON ที่ตำแหน่งต่อไปนี้บนโดเมนการลงชื่อเข้าใช้:

    https://domain[:optional_port]/.well-known/assetlinks.json

    ตัวอย่างเช่นหากโดเมนลงชื่อเข้าใช้ของคุณคือ signin.example.com ให้โฮสต์ไฟล์ JSON ที่ https://signin.example.com/.well-known/assetlinks.json

    ประเภท MIME สำหรับไฟล์ Digital Assets Link ต้องเป็น JSON ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ส่งส่วนหัว Content-Type: application/json ในการตอบกลับ

  3. ตรวจสอบว่าโฮสต์ของคุณอนุญาตให้ Google ดึงไฟล์ Digital Asset Link ของคุณ หากคุณมีไฟล์ robots.txt จะต้องอนุญาตให้ตัวแทน Googlebot ดึงข้อมูล /.well-known/assetlinks.json ไซต์ส่วนใหญ่สามารถอนุญาตให้ตัวแทนอัตโนมัติดึงไฟล์ในเส้นทาง /.well-known/ เพื่อให้บริการอื่น ๆ สามารถเข้าถึงข้อมูลเมตาในไฟล์เหล่านั้นได้:

    User-agent: *
    Allow: /.well-known/
    

  4. ประกาศการเชื่อมโยงในแอป Android

    1. เพิ่มบรรทัดต่อไปนี้ในไฟล์ manifest ภายใต้ <application> :

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. เพิ่มทรัพยากรสตริง 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
      
  5. เผยแพร่แอปไปยัง Google Play Store จำเป็นต้องเผยแพร่ในช่องสาธารณะเพื่อรับการเชื่อมโยง

  6. (ไม่บังคับ) กรอกและส่ง แบบฟอร์มการเชื่อมโยง Smart Lock สำหรับรหัสผ่าน เพื่อระบุว่าคุณได้ดำเนินการตามขั้นตอนนี้แล้ว Google ตรวจสอบเป็นระยะ ๆ ว่าพันธมิตรที่ส่งผ่านแบบฟอร์มใช้งานได้จริงหรือไม่และอาจติดต่อคุณในกรณีที่มีปัญหา

เมื่อการยืนยันเสร็จสิ้นผู้ใช้แอปของคุณสามารถบันทึกข้อมูลรับรองในแอปของคุณหรือเว็บไซต์ของคุณและลงชื่อเข้าใช้ทั้งสองโดยอัตโนมัติ

ตัวอย่าง: เชื่อมโยงหลายแอพกับเว็บไซต์

คุณสามารถเชื่อมโยงหลายแอพกับเว็บไซต์ได้โดยระบุแต่ละแอพในไฟล์ Digital Assets Link ตัวอย่างเช่นการเชื่อมโยง 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"
    ]
  }
}]

จากนั้นประกาศการเชื่อมโยงในทั้งสองแอพ:

  1. เพิ่มบรรทัดต่อไปนี้ในไฟล์ manifest ภายใต้ <application> :

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. เพิ่มทรัพยากรสตริงต่อไปนี้ในไฟล์ 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 ให้รวมไฟล์ Digital Asset Links หลัก:

[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]

สุดท้ายประกาศการเชื่อมโยงในทั้งสองแอพ:

  1. เพิ่มบรรทัดต่อไปนี้ในไฟล์ manifest ภายใต้ <application> :

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. เพิ่มทรัพยากรสตริงต่อไปนี้ในไฟล์ strings.xml :

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>