Cú pháp danh sách câu lệnh

Danh sách câu lệnh là một tệp hoặc đoạn mã được mã hoá bằng định dạng JSON ở một vị trí phổ biến.

Vị trí của danh sách câu lệnh

Hãy xem phần Tạo danh sách câu lệnh để tìm hiểu nơi lưu trữ danh sách này.

Cú pháp

Danh sách hoặc đoạn mã câu lệnh bao gồm một mảng JSON gồm một hoặc nhiều câu lệnh trang web hoặc ứng dụng dưới dạng đối tượng JSON. Các câu lệnh này có thể được sắp xếp theo thứ tự bất kỳ. Sau đây là cú pháp chung:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
quan hệ
Một mảng gồm một hoặc nhiều chuỗi mô tả mối quan hệ đang được khai báo cho mục tiêu. Xem danh sách chuỗi quan hệ được xác định. Ví dụ: delegate_permission/common.handle_all_urls
mục tiêu
Thành phần mục tiêu áp dụng câu lệnh này. Các loại mục tiêu hiện có:
  • "target": {
      "namespace": "web",
      "site": "site_root_url"
    }
    không gian tên
    Phải là web đối với trang web.
    trang web
    URI của trang web là mục tiêu của câu lệnh, ở định dạng http[s]://<hostname>[:<port>], trong đó <hostname> đủ điều kiện và phải bỏ qua <port> khi sử dụng cổng 80 cho HTTP hoặc cổng 443 cho HTTPS. Mục tiêu trang web chỉ có thể là miền gốc; bạn không thể giới hạn ở một thư mục con cụ thể; tất cả các thư mục trong thư mục gốc này sẽ khớp. Không nên xem xét miền con để khớp: nghĩa là, nếu tệp câu lệnh được lưu trữ trên www.example.com, thì www.puppies.example.com sẽ không được coi là khớp. Để biết các quy tắc và ví dụ về việc so khớp mục tiêu trang web, hãy xem tài liệu về mục tiêu. Ví dụ: http://www.example.com
  • "target": {
      "namespace": "android_app",
      "package_name": "fully_qualified_package_name",
      "sha256_cert_fingerprints": ["cert_fingerprint"]
    }
    không gian tên
    Phải là android_app đối với ứng dụng Android.
    package_name
    Tên gói đủ điều kiện của ứng dụng được áp dụng câu lệnh này. Ví dụ: com.google.android.apps.maps
    sha256_cert_fingerprints
    Dấu vân tay SHA265 viết hoa của chứng chỉ cho ứng dụng mà áp dụng cho. Bạn có thể tính toán giá trị này bằng cách sử dụng openssl hoặc Java keytool như minh hoạ dưới đây:
    • openssl x509 -in $CERTFILE -noout -fingerprint -sha256
    • keytool -printcert -file $CERTFILE | grep SHA256
    Ví dụ: ["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"].

    Nếu bạn đang sử dụng Tính năng ký ứng dụng của Play cho ứng dụng, thì vân tay số của chứng chỉ do việc chạy keytool hoặc openssl trên máy tạo ra thường không khớp với vân tay số trên thiết bị của người dùng. Bạn có thể xác minh xem mình có đang sử dụng tính năng Ký ứng dụng bằng Play cho ứng dụng của mình hay không trong tài khoản nhà phát triển trên Play Console, trong phần Release > Setup > App Integrity; nếu có, bạn cũng sẽ thấy đoạn mã JSON chính xác của Đường liên kết đến tài sản kỹ thuật số cho ứng dụng của mình trên cùng một trang.

Danh sách câu lệnh mẫu

Dưới đây là ví dụ về danh sách tuyên bố trang web chứa tuyên bố về cả trang web và ứng dụng: http://example.digitalassetlinks.org/.well-known/assetlinks.json

Mở rộng quy mô lên hàng chục câu lệnh trở lên

Trong một số trường hợp, một nguyên tắc có thể muốn đưa ra nhiều câu lệnh khác nhau về các mục tiêu khác nhau hoặc có thể cần đưa ra các câu lệnh từ nhiều nguyên tắc cho cùng một nhóm mục tiêu. Ví dụ: một trang web có thể xuất hiện trên nhiều Miền cấp cao nhất theo quốc gia và tất cả các miền đó đều có thể muốn đưa ra tuyên bố về cùng một ứng dụng di động.

Trong những trường hợp này, câu lệnh bao gồm có thể hữu ích. Khi sử dụng cơ chế này, bạn có thể thiết lập con trỏ từ nhiều nguyên tắc khác nhau đến một vị trí trung tâm, vị trí này xác định các câu lệnh cho tất cả nguyên tắc.

Ví dụ: bạn có thể quyết định vị trí trung tâm là `https://example.com/includedstatements.json`. Bạn có thể định cấu hình tệp này để chứa nội dung giống như trong các ví dụ ở trên.

Để thiết lập con trỏ từ trang web đến tệp include, thay đổi "https://example.com/.well-known/assetlinks.json" thành:

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

Cách thiết lập con trỏ từ ứng dụng Android cho hàm include hãy thay đổi "res/values/strings.xml" thành:

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

Thông tin khác

Bạn có thể xem nội dung giải thích chi tiết hơn về định dạng danh sách câu lệnh và các khái niệm cơ bản trong tài liệu đặc tả của chúng tôi.