ไวยากรณ์ของรายการใบแจ้งยอด

รายการคำสั่งคือไฟล์หรือตัวอย่างข้อมูลที่เข้ารหัส JSON ในตำแหน่งที่รู้จักกันดี

ตำแหน่งของรายการใบแจ้งยอด

ดูข้อมูลเกี่ยวกับตำแหน่งที่ควรจัดเก็บรายการนี้ที่หัวข้อการสร้างรายการคำสั่ง

ไวยากรณ์

รายการคำสั่งหรือตัวอย่างข้อมูลประกอบด้วย อาร์เรย์ JSON ของคำสั่งเว็บไซต์หรือแอปอย่างน้อย 1 รายการเป็นออบเจ็กต์ JSON ใบแจ้งยอดเหล่านี้จะเรียงลำดับแบบใดก็ได้ ไวยากรณ์ทั่วไปมีดังนี้

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
ความสัมพันธ์
อาร์เรย์ของสตริงอย่างน้อย 1 รายการที่อธิบายความสัมพันธ์ที่ประกาศเกี่ยวกับเป้าหมาย ดูรายการสตริงความสัมพันธ์ที่กำหนดไว้ เช่น delegate_permission/common.handle_all_urls
เป้าหมาย
เนื้อหาเป้าหมายที่มีผลกับข้อความนี้ ประเภทเป้าหมายที่ใช้ได้มีดังนี้
  • "target": {
      "namespace": "web",
      "site": "site_root_url"
    }
    เนมสเปซ
    ต้องเป็น web สำหรับเว็บไซต์
    เว็บไซต์
    URI ของเว็บไซต์ที่เป็นเป้าหมายของคำสั่งในรูปแบบ http[s]://<hostname>[:<port>] โดยที่ <hostname> ต้องเป็น URI แบบเต็มที่ และจะต้องไม่ใส่ <port> เมื่อใช้พอร์ต 80 สำหรับ HTTP หรือพอร์ต 443 สำหรับ HTTPS เป้าหมายเว็บไซต์จะเป็นโดเมนรากได้เท่านั้น คุณไม่สามารถจํากัดเฉพาะไดเรกทอรีย่อยที่เฉพาะเจาะจงได้ ไดเรกทอรีทั้งหมดภายใต้รากนี้จะตรงกับ ระบบจะไม่ถือว่าโดเมนย่อยตรงกัน กล่าวคือ หากไฟล์คำสั่งโฮสต์อยู่ใน www.example.com ระบบจะไม่ถือว่า www.puppies.example.com ตรงกัน ดูกฎและตัวอย่างเกี่ยวกับการจับคู่เป้าหมายเว็บไซต์ได้ที่เอกสารประกอบเกี่ยวกับเป้าหมาย เช่น http://www.example.com
  • "target": {
      "namespace": "android_app",
      "package_name": "fully_qualified_package_name",
      "sha256_cert_fingerprints": ["cert_fingerprint"]
    }
    เนมสเปซ
    ต้องเป็น android_app สำหรับแอป Android
    package_name
    ชื่อแพ็กเกจที่สมบูรณ์ในตัวเองของแอปที่ใช้คำสั่งนี้ เช่น com.google.android.apps.maps
    sha256_cert_fingerprints
    ลายนิ้วมือ SHA265 ตัวพิมพ์ใหญ่ของใบรับรองสําหรับแอปที่ใช้คำสั่งนี้ คุณสามารถคํานวณตัวแปรนี้ได้โดยใช้ openssl หรือ Java keytool ดังที่แสดงไว้ที่นี่
    • openssl x509 -in $CERTFILE -noout -fingerprint -sha256
    • keytool -printcert -file $CERTFILE | grep SHA256
    ตัวอย่าง: ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]

    หากคุณใช้ Play App Signing สำหรับแอป ลายนิ้วมือของใบรับรองที่สร้างขึ้นโดยการเรียกใช้ keytool หรือ openssl ในเครื่องมักจะไม่ตรงกับลายนิ้วมือในอุปกรณ์ของผู้ใช้ คุณสามารถตรวจสอบว่าคุณใช้ Play App Signing สําหรับแอปในบัญชีนักพัฒนาแอป Play Console หรือไม่ในส่วน Release > Setup > App Integrity หากใช้อยู่ คุณจะเห็นข้อมูลโค้ด JSON ของลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ที่ถูกต้องสําหรับแอปในหน้าเดียวกันด้วย

ตัวอย่างรายการคำสั่ง

ตัวอย่างรายการคำสั่งของเว็บไซต์ที่มีคำสั่งเกี่ยวกับทั้งเว็บไซต์และแอปมีดังนี้ http://example.digitalassetlinks.org/.well-known/assetlinks.json

การปรับขนาดเป็นงบการเงินหลายสิบรายการขึ้นไป

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

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

ตัวอย่างเช่น คุณอาจตัดสินใจว่าตำแหน่งส่วนกลางควรเป็น `https://example.com/includedstatements.json` ไฟล์นี้สามารถกําหนดค่าให้มีเนื้อหาเหมือนกับในตัวอย่างด้านบน

หากต้องการตั้งค่าพอยน์เตอร์จากเว็บไซต์ไปยังไฟล์รวม ให้เปลี่ยน `https://example.com/.well-known/assetlinks.json` เป็น

[{
  "include": "https://example.com/includedstatements.json"
}]

หากต้องการตั้งค่าพอยน์เตอร์จากแอป Android ไปยังไฟล์รวม ให้เปลี่ยน `res/values/strings.xml` เป็น

<resources>
  ...
  <string name="asset_statements">
    [{
      \"include\": \"https://example.com/includedstatements.json\"
    }]
  </string>
</resources>

ข้อมูลเพิ่มเติม

มีคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับรูปแบบรายการคำสั่งและแนวคิดสำคัญในเอกสารข้อกำหนดของเรา