AppRequest

AppRequest は、アクションとやり取りするために Google アシスタントからフルフィルメントに送信されるリクエストです。API のバージョンは HTTP ヘッダーで指定されます。API バージョン 1 の場合、ヘッダーには Google-Assistant-API-Version: v1 が含まれます。API バージョン 2 の場合、ヘッダーには Google-actions-API-Version: 2 が含まれます。Actions on 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 Web Token です。定義については、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 に従いますが、script サブタグは含まれません。

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 アシスタント クライアント サーフェスに固有の情報。同じデバイスに複数のアシスタント サーフェスが存在する場合があるため、サーフェスはデバイスとは区別されます。

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。この ID は最初のターンで割り当てられます。それ以降、会話が終了するまでの間、後続の会話ターンで同じ ID が使用されます。

type

enum (ConversationType)

type は、そのライフサイクルにおける会話の状態を示します。

conversationToken

string

最後の会話ターンでアクションによって指定された不透明トークン。アクション内でこのフィールドを使用して、会話の追跡や、会話関連データの保存ができます。

入力

JSON 表現
{
  "rawInputs": [
    {
      object (RawInput)
    }
  ],
  "intent": string,
  "arguments": [
    {
      object (Argument)
    }
  ]
}
フィールド
rawInputs[]

object (RawInput)

会話の各ターンからの未加工の入力音声文字変換。Actions on Google がアクションに提供する入力のタイプによっては、複数の会話ターンが必要な場合があります。

intent

string

ユーザーの意図を示します。最初の会話ターンでは、アクションのトリガー インテントを指します。後続の会話ターンでは、そのインテントは Google での一般的なアクション(「actions.」で始まる)になります。たとえば、想定される入力が 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。