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 권한이 필요합니다.

Surface

사용자가 상호작용 중인 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)

Action이 요청한 입력에 대해 제공된 인수 값의 목록입니다.

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입니다.