Un elenco di istruzioni è un file o uno snippet codificato in JSON in una posizione nota.
Posizione dell'elenco di istruzioni
Consulta la sezione Creazione di un elenco di istruzioni per sapere dove deve essere archiviato questo elenco.
Sintassi
L'elenco di istruzioni o lo snippet è costituito un array JSON di una o più istruzioni di siti web o app sotto forma di oggetti JSON. Queste istruzioni possono essere in qualsiasi ordine. Ecco la sintassi generale:
[ { "relation": ["relation_string "], "target": {target_object } } , ... ]
- relazione
- Un array di una o più stringhe che descrivono la relazione dichiarata per il target. Consulta l'elenco di stringhe di relazione definite. Esempio:
delegate_permission/common.handle_all_urls
- target
- L'asset target a cui si applica la presente dichiarazione. Tipi di target disponibili:
-
Target del sito web "target": { "namespace": "web", "site": "
site_root_url " }- spazio dei nomi
- Deve essere
web
per i siti web. - sito
- URI del sito di destinazione dell'istruzione, nel formato
http[s]://<hostname>[:<port>]
, dove <hostname> è valido, e <port> deve essere omesso quando si utilizza la porta 80 per HTTP o la porta 443 per HTTPS. Il target di un sito web può essere solo un dominio principale. non puoi limitare a una sottodirectory specifica: tutte le directory sotto questa radice corrisponderanno. I sottodomini non devono essere considerati corrispondenti: in altre parole, se il file di dichiarazione è ospitato su www.example.com, www.puppies.example.com non deve essere considerato una corrispondenza. Per regole ed esempi sulla corrispondenza dei target del sito web, consulta la documentazione sui target. Esempio:http://www.example.com
-
Target dell'app per Android "target": { "namespace": "android_app", "package_name": "
fully_qualified_package_name ", "sha256_cert_fingerprints": ["cert_fingerprint "] }- spazio dei nomi
- Deve essere
android_app
per le app per Android. - package_name
- Il nome del pacchetto completo dell'app a cui si applica questa istruzione. Esempio:
com.google.android.apps.maps
- sha256_cert_fingerprints
- L'impronta SHA265 maiuscola del certificato per l'app che
a cui si applica la dichiarazione. Puoi calcolarlo utilizzando
openssl
o Javakeytool
come mostrato qui: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"]
.Se utilizzi la firma dell'app di Google Play per la tua app, la fingerprint del certificato prodotta eseguendo
keytool
oopenssl
in locale di solito non corrisponde a quella su utente dispositivi mobili. Puoi verificare se utilizzi la firma dell'app Google Play per la tua app nel tuo account sviluppatore Play Console in Release > Setup > App Integrity. Se è così, nella stessa pagina troverai anche lo snippet JSON Digital Asset Links corretto per la tua app.
-
Elenco di istruzioni di esempio
Ecco un esempio di elenco di istruzioni per il sito web che contiene dichiarazioni riguardanti siti web e app: http://example.digitalassetlinks.org/.well-known/assetlinks.json
Scalare fino a decine di dichiarazioni o più
In alcuni casi, un'entità potrebbe voler fare molte dichiarazioni diverse su obiettivi diversi o potrebbe essere necessario rilasciare dichiarazioni con entità diverse allo stesso insieme di target. Ad esempio, un sito web potrebbe essere disponibile su molti domini di primo livello diversi per paese e tutti potrebbero voler fare una dichiarazione sulla stessa app mobile.
Per queste situazioni, le istruzione include possono essere utili. Utilizzando questo meccanismo, puoi configurare puntatori da molte entità diverse una posizione centrale, che definisce le istruzioni per tutte le entità.
Ad esempio, potresti decidere che la posizione centrale deve essere "https://example.com/includedstatements.json". Questo file può essere configurato in modo da contenere gli stessi contenuti degli esempi precedenti.
Per impostare un puntatore da un sito web al file di inclusione, procedi nel seguente modo: cambia "https://example.com/.well-known/assetlinks.json" in:
[{ "include": "https://example.com/includedstatements.json" }]
Per configurare un puntatore da un'app per Android alla sezione Includi cambia "res/values/strings.xml" in:
<resources> ... <string name="asset_statements"> [{ \"include\": \"https://example.com/includedstatements.json\" }] </string> </resources>
Ulteriori informazioni
Una spiegazione più dettagliata del formato dell'elenco di istruzioni e dei concetti sottostanti è disponibile nel nostro documento delle specifiche.