Package google.digitalassetlinks.v1

색인

진술

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

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

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

목록

rpc List(ListRequest) returns (ListResponse)

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

이 API는 HTTPS 웹사이트 또는 Android 앱과 같은 보안 소스 애셋이 포함된 모든 진술이 디지털 애셋 링크 기술 설계 사양에 설명된 대로 해당 애셋의 소유자가 안전한 방식으로 작성했음을 보장합니다. 특히 안전하지 않은 웹사이트 (즉, URL이 https:// 대신 http://로 시작하는 웹사이트)의 경우 보장할 수 없다는 점을 고려해야 합니다.

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

AndroidAppAsset

Android 앱 애셋을 설명합니다.

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

패키지 이름 고유성이 전역적으로 적용되지 않기 때문에 패키지 이름과 함께 앱을 고유하게 식별하는 서명 인증서도 필요합니다.

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

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

CertificateInfo

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 피드, 플러스 페이지가 있습니다.

필드 이름 유형 설명
Union 필드, 다음 중 하나만
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

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

메시지는 영어로 제공되며 현재는 번역이 제공되지 않을 예정입니다.

이 문자열의 콘텐츠 또는 형식은 보장되지 않습니다. 이러한 요소의 모든 부분은 예고 없이 변경될 수 있습니다. 이 데이터를 프로그래매틱 방식으로 파싱하려고 해서는 안 됩니다. API가 다른 방법으로 필요한 정보를 노출하지 않기 때문에 이 확인이 필요한 경우에는 먼저 Google에 문의해 주시기 바랍니다.

ListRequest

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

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

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

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

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

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

예: 관계가 delegate_permission/common.handle_all_urls인 쿼리는 delegate_permission/common.handle_all_urls 관계가 있는 애셋 링크를 일치시킵니다.

ListResponse

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

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

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

메시지는 영어로 제공되며 현재는 번역이 제공되지 않을 예정입니다.

이 문자열의 콘텐츠 또는 형식은 보장되지 않습니다. 이러한 요소의 모든 부분은 예고 없이 변경될 수 있습니다. 이 데이터를 프로그래매틱 방식으로 파싱하려고 해서는 안 됩니다. API가 다른 방법으로 필요한 정보를 노출하지 않기 때문에 이 확인이 필요한 경우에는 먼저 Google에 문의해 주시기 바랍니다.

소스 저작물과 대상 저작물 간의 관계에 대해 신뢰할 수 있는 설명을 설명합니다.

문은 항상 소스 애셋에 의해 직접 작성되거나 다른 곳에 저장된 명령문 목록에 위임되어 생성됩니다.

명세서 및 자산에 대한 자세한 정의는 API 문서 방문 페이지를 참고하세요.

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

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

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

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

예: delegate_permission/common.handle_all_urls REQUIRED

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

WebAsset

웹 저작물을 설명합니다.

필드 이름 유형 설명
site string

웹 자산은 스키마, 호스트 이름 및 포트 부분만 포함하는 URL로 식별됩니다. 형식은

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

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

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

포트 번호는 십진수로 제공되며 표준 포트 번호(http의 경우 80, 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/ (포트가 일치하지 않음) 필수사항