AppRequest

AppRequest는 작업과 상호작용하기 위해 Google 어시스턴트가 처리로 전송하는 요청입니다. API 버전은 HTTP 헤더에 지정됩니다. API 버전 1의 경우 헤더에 Google-Assistant-API-Version: v1가 포함됩니다. API 버전 2의 경우 헤더에 Google-actions-API-Version: 2가 포함됩니다. Google에서 작업이 사용되는 방식의 예는 https://developers.google.com/assistant/df-asdk/reference/conversation-webhook-json을 참고하세요 .

JSON 표현
{
  "user": {
    object (User)
  },
  "device": {
    object (Device)
  },
  "surface": {
    object (Surface)
  },
  "conversation": {
    object (Conversation)
  },
  "inputs": [
    {
      object (Input)
    }
  ],
  "isInSandbox": boolean,
  "availableSurfaces": [
    {
      object (Surface)
    }
  ]
}
필드
user

object (User)

대화를 시작한 사용자입니다.

device

object (Device)

사용자가 작업과 상호작용하는 데 사용하는 기기에 관한 정보입니다.

surface

object (Surface)

사용자가 상호작용하는 노출 영역에 관한 정보입니다(예: 오디오를 출력할 수 있는지 또는 화면이 있는지).

conversation

object (Conversation)

대화 ID, 대화 토큰과 같은 세션 데이터를 보유합니다.

inputs[]

object (Input)

작업에서 지정한 예상 입력에 해당하는 입력 목록입니다. 초기 대화 트리거의 경우 입력에는 사용자가 대화를 트리거한 방식에 관한 정보가 포함됩니다.

isInSandbox

boolean

요청을 샌드박스 모드에서 처리해야 하는지 여부를 나타냅니다.

availableSurfaces[]

object (Surface)

교차 표면 핸드오프에 사용할 수 있는 표면입니다.

사용자

JSON 표현
{
  "idToken": string,
  "profile": {
    object (UserProfile)
  },
  "accessToken": string,
  "permissions": [
    enum (Permission)
  ],
  "locale": string,
  "lastSeen": string,
  "userStorage": string,
  "packageEntitlements": [
    {
      object (PackageEntitlement)
    }
  ],
  "userVerificationStatus": enum (UserVerificationStatus)
}
필드
idToken

string

사용자 ID를 나타내는 토큰입니다. 인코딩된 프로필이 포함된 JSON 웹 토큰입니다. 정의는 https://developers.google.com/identity/protocols/OpenIDConnect#obtainuserinfo에서 확인할 수 있습니다.

profile

object (UserProfile)

최종 사용자에 대한 정보입니다. 일부 필드는 사용자가 이 정보를 작업에 제공할 권한을 부여한 경우에만 사용할 수 있습니다.

accessToken

string

시스템에서 사용자를 식별하는 OAuth2 토큰입니다. 사용자가 계정을 연결한 경우에만 사용할 수 있습니다.

permissions[]

enum (Permission)

이 작업에 사용자가 부여한 권한이 포함됩니다.

locale

string

요청하는 사용자의 기본 언어 설정입니다. IETF BCP-47 언어 코드 http://www.rfc-editor.org/rfc/bcp/bcp47.txt를 따릅니다. 그러나 스크립트 하위 태그는 포함되지 않습니다.

lastSeen

string (Timestamp format)

이 사용자와의 마지막 상호작용 타임스탬프입니다. 사용자가 이전에 상담사와 상호작용한 적이 없는 경우 이 필드가 생략됩니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프로 정밀도는 나노초 수준입니다. 예: "2014-10-02T15:01:23.045123456Z"

userStorage

string

애플리케이션에서 제공하는 불투명 토큰으로, 특정 사용자의 대화에서 유지됩니다. 문자열의 최대 크기는 10,000자(영문 기준)입니다.

packageEntitlements[]

object (PackageEntitlement)

작업 패키지에 나열된 모든 패키지 이름에 대한 사용자 사용 권한 목록입니다(있는 경우).

userVerificationStatus

enum (UserVerificationStatus)

사용자의 확인 상태를 나타냅니다.

UserProfile

사용자의 개인 정보를 포함합니다. 필드는 사용자가 특정 필드에 관한 작업에 권한을 부여한 경우에만 채워집니다.

JSON 표현
{
  "displayName": string,
  "givenName": string,
  "familyName": string
}
필드
displayName

string

Google 계정에 지정된 사용자의 전체 이름입니다. NAME 권한이 필요합니다.

givenName

string

Google 계정에 지정된 사용자의 이름입니다. NAME 권한이 필요합니다.

familyName

string

Google 계정에 지정된 사용자의 성입니다. 이 필드는 비어 있을 수 있습니다. NAME 권한이 필요합니다.

PackageEntitlement

패키지 이름과 관련된 사용 권한 목록

JSON 표현
{
  "packageName": string,
  "entitlements": [
    {
      object (Entitlement)
    }
  ]
}
필드
packageName

string

작업 패키지의 패키지 이름과 일치해야 함

entitlements[]

object (Entitlement)

특정 앱에 대한 사용 권한 목록

사용 권한

사용자의 디지털 사용 권한을 정의합니다. 가능한 사용 권한 유형: 유료 앱,인앱 구매, 인앱 정기 결제

JSON 표현
{
  "sku": string,
  "skuType": enum (SkuType),
  "inAppDetails": {
    object (SignedData)
  }
}
필드
sku

string

제품 SKU입니다. 유료 앱의 패키지 이름, 인앱 구매 및 인앱 구독을 위한 Finsky Docid의 접미사. Play InApp Billing API의 getSku()를 매칭합니다.

skuType

enum (SkuType)

inAppDetails

object (SignedData)

인앱 구매 및 인앱 정기 결제인 경우에만 표시됩니다.

SignedData

JSON 표현
{
  "inAppPurchaseData": {
    object
  },
  "inAppDataSignature": string
}
필드
inAppPurchaseData

object (Struct format)

getPurchases() 메서드에서 INAPP_PURCHASE_DATA를 매칭합니다. JSON 형식의 모든 인앱 구매 데이터를 포함합니다. https://developer.android.com/google/play/billing/billing_reference.html의 표 6에서 세부정보를 참조하세요.

inAppDataSignature

string

Play InApp Billing API의 getPurchases() 메서드의 IN_APP_DATA_SIGNATURE와 일치합니다.

기기

사용자가 작업과 상호작용하는 데 사용하는 기기에 관한 정보입니다.

JSON 표현
{
  "location": {
    object (Location)
  }
}
필드
location

object (Location)

위도, 경도, 형식이 지정된 주소와 같은 실제 기기 위치를 나타냅니다. DEVICE_COARSE_LOCATION 또는 DEVICE_PRECISE_LOCATION 권한이 필요합니다.

표면

사용자가 상호작용하는 Google 어시스턴트 클라이언트 노출 영역에 관한 정보입니다. Surface는 여러 어시스턴트 표시 경로가 동일한 기기에 있을 수 있다는 점에서 기기와 구분됩니다.

JSON 표현
{
  "capabilities": [
    {
      object (Capability)
    }
  ]
}
필드
capabilities[]

object (Capability)

요청 시 노출 영역에서 지원하는 기능 목록(예: actions.capability.AUDIO_OUTPUT)

기능

노출 영역에서 지원할 수 있는 기능 단위를 나타냅니다.

JSON 표현
{
  "name": string
}
필드
name

string

기능 이름입니다(예: actions.capability.AUDIO_OUTPUT).

대화

JSON 표현
{
  "conversationId": string,
  "type": enum (ConversationType),
  "conversationToken": string
}
필드
conversationId

string

멀티턴 대화의 고유 ID입니다. 첫 번째 회전에 할당됩니다. 그 후에는 대화가 종료될 때까지 이어지는 대화에서 동일하게 유지됩니다.

type

enum (ConversationType)

type은 수명 주기에서 대화의 상태를 나타냅니다.

conversationToken

string

마지막 대화 차례의 작업에서 지정한 불투명 토큰입니다. 작업에서 대화를 추적하거나 대화 관련 데이터를 저장하는 데 사용할 수 있습니다.

입력

JSON 표현
{
  "rawInputs": [
    {
      object (RawInput)
    }
  ],
  "intent": string,
  "arguments": [
    {
      object (Argument)
    }
  ]
}
필드
rawInputs[]

object (RawInput)

각 대화 차례의 원시 입력 스크립트입니다. Google에서 작업에 특정 유형의 입력을 제공하려면 여러 번의 대화 차례가 필요할 수 있습니다.

intent

string

사용자의 인텐트를 나타냅니다. 첫 번째 대화 차례에서 인텐트는 작업의 트리거 인텐트를 참조합니다. 이어지는 대화 차례에서는 인텐트가 Google 인텐트의 일반적인 작업('작업'으로 시작)이 됩니다. 예를 들어 예상되는 입력이 actions.intent.OPTION이면 여기에 지정된 인텐트는 Google 어시스턴트가 인텐트를 충족할 수 있었던 경우에는 actions.intent.OPTION이고, 사용자가 다른 정보를 제공한 경우에는 actions.intent.TEXT입니다. https://developers.google.com/assistant/df-asdk/reference/intents를 참고하세요.

arguments[]

object (Argument)

작업에서 요청한 입력에 제공된 인수 값의 목록입니다.

RawInput

JSON 표현
{
  "inputType": enum (InputType),

  // Union field input can be only one of the following:
  "query": string,
  "url": string
  // End of list of possible types for union field input.
}
필드
inputType

enum (InputType)

사용자가 이 입력을 제공한 방법(입력된 응답, 음성 응답, 지정되지 않음 등)을 나타냅니다.

통합 필드 input. 실제 입력 값 input는 다음 중 하나여야 합니다.
query

string

최종 사용자의 입력 또는 음성 입력입니다.

url

string

실행 URL입니다.