Google Digital Asset Links Samples

  • This page provides sample code in Python and JavaScript for working with the Google Digital Asset Links API.

  • The samples demonstrate how to list statements made by a website and check for a specific statement.

  • To use the code samples, you need to activate the digitalassetlinks API for your project and replace a placeholder with your API key.

  • Sample code is not currently available for Go, Java, .NET, Objective-C, PHP, or Ruby, but you might be able to adapt samples for other Google APIs.

Sample code is often the easiest way to learn how to use an API. For links to Google Digital Asset Links samples, select a programming language below.

The samples use the Google API client libraries .

If a library's samples page does not yet include a sample for the Google Digital Asset Links, you can still use that library, and you might be able to adapt samples that are provided for a different Google API.

Python

Here is a simple Python example that lists all statements made by a given website, then checks whether that site makes the delegate_permission/common.handle_all_urls statement about a specific Android app.

 #!/usr/bin/python 
 import 
  
 urllib 
 def 
  
 ListWeb 
 ( 
 source_web_site 
 , 
 relation 
 ): 
 return 
 urllib 
 . 
 urlopen 
 ( 
 'https://digitalassetlinks.googleapis.com/v1/' 
 'statements:list?source.web.site= 
 %s 
 &relation= 
 %s 
 ' 
 % 
 ( 
 urllib 
 . 
 quote 
 ( 
 source_web_site 
 , 
 '' 
 ), 
 urllib 
 . 
 quote 
 ( 
 relation 
 , 
 '' 
 ))) 
 . 
 read 
 () 
 def 
  
 CheckWebToAndroid 
 ( 
 source_web_site 
 , 
 relation 
 , 
 target_package_name 
 , 
 target_sha256_fingerprint 
 ): 
 return 
 urllib 
 . 
 urlopen 
 ( 
 'https://digitalassetlinks.googleapis.com/v1/' 
 'assetlinks:check?source.web.site= 
 %s 
 &relation= 
 %s 
 ' 
 '&target.android_app.package_name= 
 %s 
 ' 
 '&target.android_app.certificate.sha256_fingerprint= 
 %s 
 ' 
 '&key=API_KEY' 
 % 
 ( 
 urllib 
 . 
 quote 
 ( 
 source_web_site 
 , 
 '' 
 ), 
 urllib 
 . 
 quote 
 ( 
 relation 
 , 
 '' 
 ), 
 urllib 
 . 
 quote 
 ( 
 target_package_name 
 , 
 '' 
 ), 
 urllib 
 . 
 quote 
 ( 
 target_sha256_fingerprint 
 , 
 '' 
 ))) 
 . 
 read 
 () 
 def 
  
 main 
 (): 
 print 
 '================================== List() Output =======' 
 print 
 ListWeb 
 ( 
 'http://example.digitalassetlinks.org' 
 , 
 'delegate_permission/common.handle_all_urls' 
 ) 
 print 
 '================================== Check() Output ======' 
 print 
 CheckWebToAndroid 
 ( 
 'http://example.digitalassetlinks.org' 
 , 
 'delegate_permission/common.handle_all_urls' 
 , 
 'org.digitalassetlinks.sampleapp' 
 , 
 '10:39:38:EE:45:37:E5:9E:8E:E7:92:F6:54:50:4F:B8:34:6F:C6:B3:46:D0:BB:C4:41:5F:C3:39:FC:FC:8E:C1' 
 ) 
 if 
 __name__ 
 == 
 '__main__' 
 : 
 main 
 () 

JavaScript

Here is a simple JavaScript example that lets you list all statements made by a given website and also check for the presence of a given statement in that website.

< html 
>  
< head 
>  
< script 
  
 type 
 = 
 "text/javascript" 
>  
 function 
  
 executeRequest 
 ( 
 request 
 , 
  
 outElement 
 ) 
  
 { 
  
 var 
  
 xmlhttp 
  
 = 
  
 new 
  
 XMLHttpRequest 
 (); 
  
 xmlhttp 
 . 
 onreadystatechange 
  
 = 
  
 function 
 () 
  
 { 
  
 if 
  
 ( 
 xmlhttp 
 . 
 readyState 
  
 == 
  
 4 
 ) 
  
 { 
  
 if 
  
 ( 
 xmlhttp 
 . 
 status 
  
 == 
  
 200 
 ) 
  
 { 
  
 outElement 
 . 
 value 
  
 = 
  
 xmlhttp 
 . 
 responseText 
 ; 
  
 } 
  
 else 
  
 { 
  
 outElement 
 . 
 value 
  
 = 
  
 "Error running request. Response: " 
  
 + 
  
 xmlhttp 
 . 
 responseText 
 ; 
  
 } 
  
 } 
  
 }; 
  
 xmlhttp 
 . 
 open 
 ( 
 'GET' 
 , 
  
 'https://digitalassetlinks.googleapis.com/v1/' 
  
 + 
  
 request 
 , 
  
 true 
 ); 
  
 xmlhttp 
 . 
 send 
 (); 
  
 } 
  
 function 
  
 executeListRequest 
 () 
  
 { 
  
 var 
  
 sourceWebSite 
  
 = 
  
 encodeURIComponent 
 ( 
  
 document 
 . 
 getElementById 
 ( 
 'list_source' 
 ). 
 value 
 ); 
  
 var 
  
 relation 
  
 = 
  
 encodeURIComponent 
 ( 
  
 document 
 . 
 getElementById 
 ( 
 'list_relation' 
 ). 
 value 
 ); 
  
 var 
  
 outputTextArea 
  
 = 
  
 document 
 . 
 getElementById 
 ( 
 'list_response' 
 ); 
  
 executeRequest 
 ( 
 'statements:list?source.web.site=' 
  
 + 
  
 sourceWebSite 
  
 + 
  
 '&relation=' 
  
 + 
  
 relation 
 , 
  
 outputTextArea 
 ); 
  
 } 
  
 function 
  
 executeCheckRequest 
 () 
  
 { 
  
 var 
  
 sourceWebSite 
  
 = 
  
 encodeURIComponent 
 ( 
  
 document 
 . 
 getElementById 
 ( 
 'check_source' 
 ). 
 value 
 ); 
  
 var 
  
 relation 
  
 = 
  
 encodeURIComponent 
 ( 
  
 document 
 . 
 getElementById 
 ( 
 'check_relation' 
 ). 
 value 
 ); 
  
 var 
  
 targetPackageName 
  
 = 
  
 encodeURIComponent 
 ( 
  
 document 
 . 
 getElementById 
 ( 
 'check_target_package' 
 ). 
 value 
 ); 
  
 var 
  
 targetSha256Fingerprint 
  
 = 
  
 encodeURIComponent 
 ( 
  
 document 
 . 
 getElementById 
 ( 
 'check_target_sha256_fingerprint' 
 ). 
 value 
 ); 
  
 var 
  
 outputTextArea 
  
 = 
  
 document 
 . 
 getElementById 
 ( 
 'check_response' 
 ); 
  
 executeRequest 
 ( 
 'assetlinks:check?source.web.site=' 
  
 + 
  
 sourceWebSite 
  
 + 
  
 '&relation=' 
  
 + 
  
 relation 
  
 + 
  
 '&target.android_app.package_name=' 
  
 + 
  
 targetPackageName 
  
 + 
  
 '&target.android_app.certificate.sha256_fingerprint=' 
  
 + 
  
 targetSha256Fingerprint 
  
 + 
  
 '&key=API_KEY' 
 , 
  
 outputTextArea 
 ); 
  
 } 
  
< / 
 script 
>  
< / 
 head 
>  
< body 
>  
< h2>List 
 () 
< / 
 h2 
>  
< label>Source 
  
 Web 
  
 Asset 
 : 
< /label 
>  
< input 
  
 type 
 = 
 "text" 
  
 id 
 = 
 "list_source" 
  
 value 
 = 
 "http://example.digitalassetlinks.org" 
>  
  
< label>Relation 
 : 
< /label 
>  
< input 
  
 type 
 = 
 "text" 
  
 id 
 = 
 "list_relation" 
  
 value 
 = 
 "delegate_permission/common.handle_all_urls" 
>  
  
< button 
  
 type 
 = 
 "button" 
  
 onclick 
 = 
 "executeListRequest()" 
> Run 
< / 
 button><br> 
  
< textarea 
  
 rows 
 = 
 "20" 
  
 cols 
 = 
 "80" 
  
 id 
 = 
 "list_response" 
>< / 
 textarea 
>  
< hr 
>  
< h2>Check 
 () 
< / 
 h2 
>  
< label>Source 
  
 Web 
  
 Asset 
 : 
< /label 
>  
< input 
  
 type 
 = 
 "text" 
  
 id 
 = 
 "check_source" 
  
 value 
 = 
 "http://example.digitalassetlinks.org" 
>  
  
 Relation 
 : 
  
< input 
  
 type 
 = 
 "text" 
  
 id 
 = 
 "check_relation" 
  
 value 
 = 
 "delegate_permission/common.handle_all_urls" 
>< br 
>  
  
< label>Target 
  
 Android 
  
 Package 
 : 
< /label 
>  
< input 
  
 type 
 = 
 "text" 
  
 id 
 = 
 "check_target_package" 
  
 value 
 = 
 "org.digitalassetlinks.sampleapp" 
>  
  
< label>Target 
  
 Android 
  
 Certificate 
  
 Fingerprint 
 : 
< /label 
>  
< input 
  
 type 
 = 
 "text" 
  
 id 
 = 
 "check_target_sha256_fingerprint" 
  
 value 
 = 
 "10:39:38:EE:45:37:E5:9E:8E:E7:92:F6:54:50:4F:B8:34:6F:C6:B3:46:D0:BB:C4:41:5F:C3:39:FC:FC:8E:C1" 
>  
  
< button 
  
 type 
 = 
 "button" 
  
 onclick 
 = 
 "executeCheckRequest()" 
> Run 
< / 
 button><br> 
  
< textarea 
  
 rows 
 = 
 "20" 
  
 cols 
 = 
 "80" 
  
 id 
 = 
 "check_response" 
>< / 
 textarea 
>  
< / 
 body 
>
< /html 
>

Go

There are no Go samples specifically for this version of the Google Digital Asset Links.

However, you may be able to adapt one of the other Go samples .

Java

There are no Java samples specifically for this version of the Google Digital Asset Links.

You may be able to adapt one of the other Java samples .

.NET

There are no .NET samples specifically for this version of the Google Digital Asset Links.

However, you may be able to adapt one of the other .NET samples .

Objective-C

There are no Objective-C samples specifically for this version of the Google Digital Asset Links.

However, you may be able to adapt one of the other Objective-C samples .

PHP

There are no PHP samples specifically for this version of the Google Digital Asset Links.

However, you may be able to adapt one of the other PHP samples .

Ruby

There are no Ruby samples specifically for this version of the Google Digital Asset Links.

However, you may be able to adapt one of the other Ruby samples .

Design a Mobile Site
View Site in Mobile | Classic
Share by: