Package google.digitalassetlinks.v1

색인

이 API 서비스는 애셋 소유자가 애셋 링크에 대한 정보를 게시하는 데 사용하는 수단인 '문'을 제공합니다. API를 사용하면 소스에서 직접 문을 가져올 필요 없이 간단하고 안전한 방법으로 문을 가져올 수 있습니다.

이 API에서 반환하는 모든 문은 다른 디지털 애셋에 대한 디지털 애셋 (예: 웹사이트 또는 Android 앱)을 대신하여 작성된 것입니다. 각 문에는 소스 애셋, 타겟 애셋 및 하나 이상의 관계가 포함됩니다.

관계는 소스 저작물에서 소유권을 주장한 두 저작물 간의 관계를 설명합니다. 이러한 관계의 예로는 권한 위임이 있습니다.

목록

rpc List(ListRequest) returns (ListResponse)

지정된 대상 및 문 문자열과 일치하는 지정된 소스의 모든 문 목록을 검색합니다.

API는 디지털 애셋 링크 기술 설계 사양에 설명된 대로 HTTPS 웹사이트 또는 Android 앱과 같이 보안 소스 애셋이 포함된 모든 명세서를 이러한 애셋의 소유자가 안전한 방식으로 생성했는지 확인합니다. 특히 안전하지 않은 웹사이트 (즉, URL이 https:// 대신 http://로 시작하는 페이지)에 대해서는 보장할 수 없습니다.

List 명령어는 API 클라이언트가 두 애셋이 관련된 모든 방식을 파악하거나 특정 소스 애셋의 모든 관계를 열거하려는 경우에 가장 유용합니다. 예: 사용자가 관련 항목으로 이동하는 데 도움이 되는 기능 모바일 앱이 기기에서 실행될 때 이 기능을 사용하면 해당 웹사이트 또는 Google+ 프로필로 쉽게 이동할 수 있습니다.

Android 앱 애셋

Android 앱 애셋을 설명합니다.

필드 이름 유형 설명
package_name string Android 앱 애셋은 자바 패키지 이름으로 자연스럽게 식별됩니다. 예를 들어 Google 지도 앱에서는 com.google.android.apps.maps라는 패키지 이름을 사용합니다. REQUIRED
certificate CertificateInfo

패키지 이름 고유성은 전 세계적으로 시행되지 않으므로 패키지 이름과 함께 앱을 고유하게 식별하는 서명 인증서도 필요합니다.

일부 앱의 서명 키는 순환되므로 시간이 지남에 따라 다른 키로 서명될 수 있습니다. (패키지 이름, 인증서)를 고유 ID로 사용하므로 두 애셋을 별개의 애셋으로 간주합니다. 두 버전의 앱에서 동일하거나 유사한 문을 작성하기 때문에 일반적으로는 문제가 발생하지 않습니다. 그러나 키가 순환될 때 앱에 관한 문을 만드는 다른 애셋은 업데이트되어야 합니다.

(문을 게시하고 쿼리하는 문법에는 여러 인증서로 알려진 앱을 쉽게 지정할 수 있도록 구문 슈가가 포함되어 있습니다.) REQUIRED

인증서 정보

X509 인증서를 설명합니다.

필드 이름 유형 설명
sha256_fingerprint string

인증서의 대문자 SHA-265 디지털 지문입니다. PEM 인증서에서 다음과 같이 가져올 수 있습니다.

$ keytool -printcert -file $CERTFILE | grep SHA256:
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

또는 다음과 같이 만드세요.

$ openssl x509 -in $CERTFILE -noout -fingerprint -sha256
SHA256 Fingerprint=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

이 예에서 이 필드의 콘텐츠는 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입니다.

이러한 도구를 사용할 수 없는 경우 PEM 인증서를 DER 형식으로 변환하고 해당 문자열의 SHA-256 해시를 계산하여 결과를 16진수 문자열로 표시할 수 있습니다(즉, 각 옥텟의 대문자 16진수 표현(콜론으로 구분)).

애셋

저작물을 고유하게 식별합니다.

디지털 애셋은 일반적으로 서비스 또는 콘텐츠를 제공하는 식별 가능한 주소 대상 온라인 법인입니다. 애셋의 예로는 웹사이트, Android 앱, Twitter 피드, Plus 페이지가 있습니다.

필드 이름 유형 설명
공용체 필드는 다음 중 하나에만 해당합니다.
web WebAsset 웹 애셋인지 여부를 설정합니다.
android_app AndroidAppAsset Android 앱 애셋인지 여부를 설정합니다.

CheckRequest

특정 애셋 링크가 있는지 확인하는 데 사용되는 메시지입니다.

필드 이름 유형 설명
source Asset 명세서 목록을 호스팅하는 소스입니다. Check() 호출을 적절한 소스로 라우팅하는 데 사용됩니다.
relation string

관계의 쿼리 문자열입니다.

<kind>/<detail> 형식의 문자열과 관계를 식별합니다. 여기서 <kind>는 사전 정의된 목적 카테고리 집합 중 하나여야 하고, <detail>는 문의 특정 사용 사례를 설명하는 자유 형식의 소문자 영숫자 문자열입니다.

현재 지원되는 관계 목록은 API 문서를 참고하세요.

쿼리가 애셋 링크와 일치하도록 하려면 쿼리와 애셋 링크의 관계 문자열이 모두 정확히 일치해야 합니다.

예: 관계가 delegate_permission/common.handle_all_urls인 쿼리가 애셋 링크가 관계 delegate_permission/common.handle_all_urls와 일치합니다.

target Asset 명세서의 타겟 애셋입니다.

CheckResponse

CheckAssetLinks 호출에 대한 응답 메시지입니다.

필드 이름 유형 설명
linked bool 요청에 지정된 애셋이 요청에 지정된 관계로 연결되는 경우 true로 설정합니다. REQUIRED
max_age Duration 제공 시간으로부터 응답이 유효한 업데이트로 간주되어야 하는 기간을 나타냅니다. REQUIRED
debug_string string

최종 사용자가 결과를 이해하고 재현하고 디버그하는 데 도움이 되는 정보를 포함하고 있으며 사람이 읽을 수 있는 메시지입니다.

메시지는 영어로 제공되며 현재 Google에서는 번역을 제공할 계획이 없습니다.

이 문자열의 내용이나 형식은 보장되지 않습니다. 또한 일부 사항은 예고 없이 변경될 수 있습니다. 이 데이터를 프로그래매틱 방식으로 파싱하려고 해서는 안 됩니다. 필요한 정보가 API를 통해 노출되지 않기 때문에 이 작업을 수행해야 한다고 생각되면 먼저 Google에 문의해 주세요.

목록 요청

소스와 관계가 지정된 모든 알려진 문을 요청하는 데 사용되는 메시지입니다.

필드 이름 유형 설명
source Asset 명세서 목록을 호스팅하는 소스입니다. List() 요청을 올바른 소스로 전달하는 데 사용됩니다. REQUIRED
relation string

지정된 관계와 일치하는 연결만 사용합니다.

관계 문자열의 자세한 정의는 Statement 메시지를 참고하세요.

쿼리가 문과 일치하도록 하려면 다음 중 하나에 해당해야 합니다.

  • 쿼리와 문의 관계 문자열이 모두 정확하게 일치하거나
  • 쿼리의 관계 문자열이 비어 있거나 누락되었습니다.

예: 관계가 delegate_permission/common.handle_all_urls인 쿼리가 애셋 링크가 관계 delegate_permission/common.handle_all_urls와 일치합니다.

목록 응답

List 호출에 대한 응답 메시지입니다.

필드 이름 유형 설명
statements Statement 발견된 모든 일치하는 문 목록입니다.
max_age Duration 제공 시간으로부터 응답이 유효한 업데이트로 간주되어야 하는 기간을 나타냅니다. REQUIRED
debug_string string

최종 사용자가 결과를 이해하고 재현하고 디버그하는 데 도움이 되는 정보를 포함하고 있으며 사람이 읽을 수 있는 메시지입니다.

메시지는 영어로 제공되며 현재 Google에서는 번역을 제공할 계획이 없습니다.

이 문자열의 내용이나 형식은 보장되지 않습니다. 또한 일부 사항은 예고 없이 변경될 수 있습니다. 이 데이터를 프로그래매틱 방식으로 파싱하려고 해서는 안 됩니다. 필요한 정보가 API를 통해 노출되지 않기 때문에 이 작업을 수행해야 한다고 생각되면 먼저 Google에 문의해 주세요.

소스 애셋과 타겟 애셋 간의 관계에 대해 신뢰할 수 있는 문장을 설명합니다.

문은 항상 소스 애셋에 의해 만들어지며, 직접 또는 다른 곳에 저장된 문 목록을 위임하기도 합니다.

명세서와 애셋에 관한 자세한 정의는 API 문서 방문 페이지를 참고하세요.

필드 이름 유형 설명
source Asset 모든 문에는 소스 애셋이 있습니다. REQUIRED
relation string

관계는 소스 애셋의 소유자 (즉, 명세서를 발급한 사람 또는 법인)가 의도한 대로 명세서의 사용을 식별합니다. 모든 완전한 문에는 관계가 있습니다.

<kind>/<detail> 형식의 문자열과 관계를 식별합니다. 여기서 <kind>는 사전 정의된 목적 카테고리 집합 중 하나여야 하고, <detail>는 문의 특정 사용 사례를 설명하는 자유 형식의 소문자 영숫자 문자열입니다.

현재 지원되는 관계 목록은 API 문서를 참고하세요.

예: delegate_permission/common.handle_all_urls 필수

target Asset 모든 문에는 타겟 애셋이 있습니다. REQUIRED

웹 애셋

웹 애셋을 설명합니다.

필드 이름 유형 설명
site string

웹 애셋은 스키마, 호스트 이름, 포트 부분만 포함된 URL로 식별됩니다. 형식은

http[s]://<hostname>[:<port>]

호스트 이름은 정규화되어야 하며 하나의 마침표('.')로 끝나야 합니다.

현재 'http' 및 'https' 스키마만 허용됩니다.

포트 번호는 십진수로 지정되며, 표준 포트 번호가 사용되는 경우 80은 http, https는 443이어야 합니다.

이 제한된 URL을 '사이트'라고 합니다. 동일한 스키마, 호스트 이름, 포트를 공유하는 모든 URL은 사이트의 일부로 간주되어 웹 저작물에 속합니다.

예: https://www.google.com 사이트의 애셋에 다음 URL이 모두 포함되어 있습니다.

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://user@password:www.google.com/

하지만 다음 URL은 포함되지 않습니다.

  • http://www.google.com/(잘못된 스키마)
  • https://google.com/ (호스트 이름이 일치하지 않음)
  • https://www.google.com:444/(포트가 일치하지 않음) REQUIRED