ไวยากรณ์ของรายการใบแจ้งยอด
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
รายการคำสั่งคือไฟล์หรือข้อมูลโค้ดที่เข้ารหัส JSON ในตำแหน่งที่รู้จักกันดี
ตำแหน่งของรายการใบแจ้งยอด
ดูการสร้างรายการคำสั่ง เพื่อดูว่าควรจัดเก็บรายการนี้ไว้ที่ใด
ไวยากรณ์
รายการหรือข้อมูลโค้ดของคำสั่งประกอบด้วย
อาร์เรย์ JSON ของคำสั่งเว็บไซต์หรือแอปอย่างน้อย 1 รายการในรูปแบบออบเจ็กต์ JSON โดยคุณจะระบุข้อความเหล่านี้ตามลำดับใดก็ได้ ไวยากรณ์ทั่วไปมีดังนี้
[
{
"relation": ["relation_string "],
"target": {target_object }
} , ...
]
relation
อาร์เรย์ของสตริงอย่างน้อย 1 รายการที่อธิบายความสัมพันธ์ที่ประกาศเกี่ยวกับเป้าหมาย ดูรายการสตริงความสัมพันธ์ที่กำหนด ตัวอย่าง: delegate_permission/common.handle_all_urls
เป้าหมาย
ชิ้นงานเป้าหมายที่ข้อความนี้ใช้ ประเภทเป้าหมายที่ใช้ได้มีดังนี้
เป้าหมายเว็บไซต์
"target" : {
"namespace" : "web" ,
"site" : "site_root_url "
}
เนมสเปซ
ต้องเป็น web
สำหรับเว็บไซต์
เว็บไซต์
URI ของเว็บไซต์ที่เป็นเป้าหมายของคำสั่งในรูปแบบ http[s]://<hostname >[:<port >]
โดยที่ <hostname> เป็นแบบเต็ม และต้องละเว้น <port> เมื่อใช้พอร์ต 80 สำหรับ HTTP หรือพอร์ต 443 สำหรับ HTTPS เป้าหมายเว็บไซต์ต้องเป็นโดเมนรากเท่านั้น คุณจะจำกัดให้เป็นไดเรกทอรีย่อยที่เฉพาะเจาะจงไม่ได้ ไดเรกทอรีทั้งหมดภายใต้รูทนี้จะตรงกัน ไม่ควรพิจารณาว่าโดเมนย่อยตรงกัน กล่าวคือ หากไฟล์ข้อความโฮสต์อยู่ใน www.example.com ก็ไม่ควรพิจารณาว่า www.puppies.example.com ตรงกัน ดูตัวอย่างและกฎเกี่ยวกับการจับคู่เป้าหมายของเว็บไซต์ได้ในเอกสารประกอบเกี่ยวกับเป้าหมาย ตัวอย่าง: http://www.example.com
เป้าหมายของแอป Android
"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
ลายนิ้วมือ SHA256 ตัวพิมพ์ใหญ่ ของใบรับรองสำหรับแอปที่คำสั่งนี้
มีผล คุณคำนวณได้โดยใช้
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 สำหรับแอปในบัญชีนักพัฒนาแอป Play Console
ในส่วนRelease > Setup > App Integrity หรือไม่ หากใช้
คุณจะเห็นข้อมูลโค้ด JSON ของลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ที่ถูกต้องสำหรับแอปในหน้าเดียวกันด้วย
relation_extensions (ไม่บังคับ)
คุณสามารถเพิ่มฟิลด์ relation_extensions
(ไม่บังคับ) ลงในคำสั่งเพื่อระบุข้อมูลเพิ่มเติมเกี่ยวกับสิทธิ์และการเชื่อมโยงที่คุณต้องการให้ ฟิลด์นี้ควรเป็นออบเจ็กต์ที่แต่ละคีย์เป็นสตริงความสัมพันธ์ และค่าเป็นออบเจ็กต์ที่มีส่วนขยายสำหรับความสัมพันธ์นั้น ไคลเอ็นต์ที่ขอใบแจ้งยอดเหล่านี้ต้องได้รับการอัปเดตเพื่อให้รองรับช่องเหล่านี้
ตัวอย่างเช่น relation_extensions
สำหรับความสัมพันธ์ delegate_permission/common.handle_all_urls
อาจมีลักษณะดังนี้
{
"relation" : [ "delegate_permission/common.handle_all_urls" ],
"target" : {
"namespace" : "android_app" ,
"package_name" : "com.example.app" ,
"sha256_cert_fingerprints" : [ "..." ]
},
"relation_extensions" : {
"delegate_permission/common.handle_all_urls" : {...}
}
}
DAL API รองรับการแสดงผล relation_extensions ในการเรียก API เมื่อตั้งค่าพารามิเตอร์ return_relation_extensions=true
ในคำขอ
รายการใบแจ้งยอดตัวอย่าง
ตัวอย่างรายการคำสั่งของเว็บไซต์ที่มีคำสั่งเกี่ยวกับทั้งเว็บไซต์และแอปมีดังนี้ http://example.digitalassetlinks.org/.well-known/assetlinks.json
การปรับขนาดเป็นงบอย่างน้อยหลายสิบรายการ
ในบางกรณี ผู้รับรองอาจต้องการออกคำสั่งหลายอย่างเกี่ยวกับเป้าหมายที่แตกต่างกัน หรืออาจจำเป็นต้องออกคำสั่งจากผู้รับรองที่แตกต่างกันไปยังชุดเป้าหมายเดียวกัน ตัวอย่างเช่น เว็บไซต์อาจ
พร้อมให้บริการในโดเมนระดับบนสุดที่แตกต่างกันมากมายในแต่ละประเทศ และเว็บไซต์ทั้งหมด
อาจต้องการแถลงเกี่ยวกับแอปบนอุปกรณ์เคลื่อนที่เดียวกัน
ในกรณีเช่นนี้ include statements อาจมีประโยชน์
กลไกนี้ช่วยให้คุณตั้งค่าพอยน์เตอร์จากหลักการที่แตกต่างกันหลายอย่างไปยัง
ตำแหน่งส่วนกลางเดียว ซึ่งกำหนดคำสั่งสำหรับหลักการทั้งหมดได้
หมายเหตุ: อนุญาตให้มีคำสั่งรวมได้สูงสุด 10 รายการใน
โครงสร้างรายการคำสั่งที่สมบูรณ์ ซึ่งหมายความว่าจำนวนไฟล์สูงสุดในโครงสร้างคือ (ไฟล์งบ 10 ไฟล์ที่รวมอยู่) + (ไฟล์งบรูท) = 11 ไฟล์
เช่น คุณอาจตัดสินใจว่าตำแหน่งส่วนกลาง
ควรเป็น `https://example.com/includedstatements.json` ไฟล์นี้สามารถ
กำหนดค่าให้มีเนื้อหาเดียวกับในตัวอย่างข้างต้นได้
หากต้องการตั้งค่าตัวชี้จากเว็บไซต์ ไปยังไฟล์ที่รวม ให้เปลี่ยน `https://example.com/.well-known/assetlinks.json` เป็น
[{
"include": "https://example.com/includedstatements.json"
}]
หากต้องการตั้งค่าพอยน์เตอร์จากแอป Android ไปยังไฟล์ include
ให้เปลี่ยน `res/values/strings.xml` เป็น
<resources>
...
<string name="asset_statements">
[{
\"include\": \"https://example.com/includedstatements.json\"
}]
</string>
</resources>
ดูคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับรูปแบบรายการใบแจ้งยอดและแนวคิดพื้นฐานได้ในเอกสารข้อกำหนด
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-09-09 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-09-09 UTC"],[[["\u003cp\u003eA statement list is a JSON file that describes relationships between websites and Android apps, used for features like Digital Asset Links.\u003c/p\u003e\n"],["\u003cp\u003eThe list consists of statements with "relation" and "target" fields, where "target" can be a website or an Android app.\u003c/p\u003e\n"],["\u003cp\u003eWebsite targets are specified using a "site" field with a URL, while Android app targets use "package_name" and "sha256_cert_fingerprints".\u003c/p\u003e\n"],["\u003cp\u003eFor many statements, use "include" to point to a central file to avoid redundancy and simplify management.\u003c/p\u003e\n"],["\u003cp\u003eDetailed syntax and examples are provided to guide you in creating and using statement lists effectively.\u003c/p\u003e\n"]]],[],null,[]]