Method: projects.sendInteraction

เล่นการสนทนารอบเดียว

คำขอ HTTP

POST https://actions.googleapis.com/v2/{project=projects/*}:sendInteraction

URL ใช้ไวยากรณ์การแปลง gRPC

พารามิเตอร์เส้นทาง

พารามิเตอร์
project

string

ต้องระบุ โปรเจ็กต์ที่กำลังทดสอบ ซึ่งระบุด้วยรหัสโปรเจ็กต์ รูปแบบ: projects/{project}

เนื้อหาของคำขอ

เนื้อหาของคำขอมีข้อมูลที่มีโครงสร้างต่อไปนี้

การแสดง JSON
{
  "input": {
    object (UserInput)
  },
  "deviceProperties": {
    object (DeviceProperties)
  },
  "conversationToken": string
}
ช่อง
input

object (UserInput)

ต้องระบุ ข้อมูลที่ผู้ใช้ป้อน

deviceProperties

object (DeviceProperties)

ต้องระบุ คุณสมบัติของอุปกรณ์ที่ใช้ในการโต้ตอบกับการดำเนินการ

conversationToken

string

โทเค็นทึบแสงที่ต้องส่งว่าได้รับจาก SendInteractionResponse ในการโต้ตอบก่อนหน้า คุณสามารถไม่ได้ตั้งค่านี้เพื่อเริ่มการสนทนาใหม่ ไม่ว่าจะเป็นการโต้ตอบแรกของเซสชันทดสอบหรือการออกจากการสนทนาก่อนหน้าและเริ่มการสนทนาใหม่

เนื้อหาการตอบกลับ

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

ตอบกลับการสนทนาทั้งรอบ

การแสดง JSON
{
  "output": {
    object (Output)
  },
  "diagnostics": {
    object (Diagnostics)
  },
  "conversationToken": string
}
ช่อง
output

object (Output)

เอาต์พุตที่แสดงต่อผู้ใช้

diagnostics

object (Diagnostics)

ข้อมูลการวินิจฉัยซึ่งอธิบายวิธีจัดการคำขอ

conversationToken

string

โทเค็นทึบแสงที่จะตั้งค่าใน SendInteractionRequest ในการเรียกใช้ RPC ครั้งถัดไปเพื่อสนทนาต่อ

UserInput

ข้อมูลจากผู้ใช้ที่ได้จากรอบการสนทนา

การแสดง JSON
{
  "query": string,
  "type": enum (InputType)
}
ช่อง
query

string

เนื้อหาของข้อมูลที่ผู้ใช้ส่ง

type

enum (InputType)

ประเภทของอินพุต

InputType

ระบุแหล่งที่มาของอินพุต ข้อความค้นหาที่พิมพ์ หรือการค้นหาด้วยเสียง

Enum
INPUT_TYPE_UNSPECIFIED แหล่งที่มาของอินพุตที่ไม่ระบุ
TOUCH การค้นหาจากการโต้ตอบ GUI
VOICE การค้นหาด้วยเสียง
KEYBOARD ข้อความค้นหาที่พิมพ์
URL ลิงก์ URL ทำให้เกิดการดำเนินการ

คุณสมบัติของอุปกรณ์

พร็อพเพอร์ตี้ของอุปกรณ์ที่เกี่ยวข้องกับรอบการสนทนา

การแสดง JSON
{
  "surface": enum (Surface),
  "location": {
    object (Location)
  },
  "locale": string,
  "timeZone": string
}
ช่อง
surface

enum (Surface)

แพลตฟอร์มที่ใช้สำหรับการโต้ตอบกับการดำเนินการ

location

object (Location)

ตำแหน่งอุปกรณ์ เช่น ละติจูด ลองจิจูด และที่อยู่ที่จัดรูปแบบแล้ว

locale

string

ตั้งค่าภาษาตามที่ตั้งค่าไว้ในอุปกรณ์ รูปแบบควรเป็นไปตาม BCP 47: https://tools.ietf.org/html/bcp47 ตัวอย่าง: en, en-US, es-419 (ดูตัวอย่างเพิ่มเติมที่ https://tools.ietf.org/html/bcp47#appendix-A)

timeZone

string

เขตเวลาตามที่ตั้งค่าไว้ในอุปกรณ์ รูปแบบควรเป็นไปตามฐานข้อมูลเขตเวลาของ IANA เช่น "อเมริกา/นิวยอร์ก": https://www.iana.org/time-zones

แพลตฟอร์ม

แพลตฟอร์มที่เป็นไปได้ซึ่งใช้ในการโต้ตอบกับการดำเนินการ และอาจเพิ่มค่าอื่นๆ ในอนาคต

Enum
SURFACE_UNSPECIFIED ค่าเริ่มต้น ค่านี้ไม่ได้ใช้
SPEAKER ลำโพง (เช่น Google Home)
PHONE โทรศัพท์พร้อม
ALLO Allo Chat
SMART_DISPLAY อุปกรณ์ Smart Display
KAI_OS KaiOS

ตำแหน่ง

คอนเทนเนอร์ที่แสดงสถานที่ตั้ง

การแสดง JSON
{
  "coordinates": {
    object (LatLng)
  },
  "formattedAddress": string,
  "zipCode": string,
  "city": string
}
ช่อง
coordinates

object (LatLng)

พิกัดทางภูมิศาสตร์ ต้องมี [DEVICE_PRECISE_LOCATION] สิทธิ์ [google.actions.v2.Permissions.DEVICE_PRECISE_LOCATION]

formattedAddress

string

ที่อยู่ที่แสดง เช่น "1600 Amphitheatre Pkwy, Mountain View, CA 94043" ต้องมี [DEVICE_PRECISE_LOCATION] สิทธิ์ [google.actions.v2.Permissions.DEVICE_PRECISE_LOCATION]

zipCode

string

รหัสไปรษณีย์ ต้องมี [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permissions.DEVICE_PRECISE_LOCATION] หรือ [DEVICE_COARSE_LOCATION] สิทธิ์ [google.actions.v2.Permissions.DEVICE_COARSE_LOCATION]

city

string

เมือง ต้องมี [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permissions.DEVICE_PRECISE_LOCATION] หรือ [DEVICE_COARSE_LOCATION] สิทธิ์ [google.actions.v2.Permissions.DEVICE_COARSE_LOCATION]

LatLng

วัตถุที่แสดงคู่ละติจูด/ลองจิจูด ค่านี้จะแสดงเป็นคู่ของค่าคู่เพื่อแสดงองศาละติจูดและลองจิจูด ออบเจ็กต์นี้ต้องเป็นไปตามมาตรฐาน WGS84 เว้นแต่จะระบุไว้เป็นอย่างอื่น ค่าต้องอยู่ในช่วงมาตรฐาน

การแสดง JSON
{
  "latitude": number,
  "longitude": number
}
ช่อง
latitude

number

ละติจูด หน่วยเป็นองศา โดยต้องอยู่ในช่วง [-90.0, +90.0]

longitude

number

ลองจิจูด หน่วยเป็นองศา โดยต้องอยู่ในช่วง [-180.0, +180.0]

เอาต์พุต

เอาต์พุตที่ผู้ใช้มองเห็นได้ในรอบการสนทนา

การแสดง JSON
{
  "text": string,
  "speech": [
    string
  ],
  "canvas": {
    object (Canvas)
  },
  "actionsBuilderPrompt": {
    object (Prompt)
  }
}
ช่อง
text

string

คำตอบแบบเสียงพูดที่ส่งถึงผู้ใช้เป็นสตริงธรรมดา

speech[]

string

เนื้อหาที่เป็นสุนทรพจน์โดยการดำเนินการดังกล่าว ซึ่งอาจรวมถึงองค์ประกอบมาร์กอัป เช่น SSML

canvas

object (Canvas)

เนื้อหา Interactive Canvas

actionsBuilderPrompt

object (Prompt)

สถานะของข้อความแจ้งเมื่อสิ้นสุดรอบการสนทนา ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความแจ้งได้ที่ https://developers.google.com/assistant/conversational/prompts

ผ้าใบ

แสดงการตอบกลับ Interactive Canvas ที่จะส่งไปให้ผู้ใช้ ค่านี้สามารถใช้ร่วมกับ "firstSimple" ในข้อความแจ้งที่มีคำสั่งให้พูดกับผู้ใช้นอกเหนือจากการแสดงการตอบกลับ Canvas แบบอินเทอร์แอกทีฟ ขนาดสูงสุดของการตอบกลับคือ 50 กิโลไบต์

การแสดง JSON
{
  "url": string,
  "data": [
    value
  ],
  "suppressMic": boolean,
  "enableFullScreen": boolean
}
ช่อง
url

string

URL ของเว็บแอป Canvas แบบอินเทอร์แอกทีฟที่จะโหลด หากไม่ได้ตั้งค่า ระบบจะนำ URL จากแคนวาสที่ใช้งานอยู่มาใช้ซ้ำ

data[]

value (Value format)

ไม่บังคับ ข้อมูล JSON ที่จะส่งไปยังหน้าเว็บประสบการณ์แบบสมจริงเป็นเหตุการณ์ หากปุ่ม "ลบล้าง" ในช่องพรอมต์ที่มีอยู่มีค่าเป็น "เท็จ" ระบบจะเพิ่มค่าข้อมูลที่กําหนดไว้ในข้อความแจ้งของ Canvas นี้หลังจากค่าข้อมูลที่กําหนดไว้ในข้อความแจ้งก่อนหน้าของ Canvas

suppressMic

boolean

ไม่บังคับ ค่าเริ่มต้น: false

enableFullScreen

boolean

หากเป็น true แอปพลิเคชัน Canvas จะใช้พื้นที่เต็มหน้าจอและจะไม่มีส่วนหัวที่ด้านบน ข้อความโทสต์จะปรากฏในหน้าจอการโหลดด้วยชื่อที่แสดงของการดำเนินการ ชื่อนักพัฒนาซอฟต์แวร์ และคำแนะนำในการออกจากการดำเนินการ ค่าเริ่มต้น: false

พรอมต์

แสดงคำตอบต่อผู้ใช้

การแสดง JSON
{
  "append": boolean,
  "override": boolean,
  "firstSimple": {
    object (Simple)
  },
  "content": {
    object (Content)
  },
  "lastSimple": {
    object (Simple)
  },
  "suggestions": [
    {
      object (Suggestion)
    }
  ],
  "link": {
    object (Link)
  },
  "canvas": {
    object (Canvas)
  }
}
ช่อง
append
(deprecated)

boolean

ไม่บังคับ โหมดสำหรับวิธีผสานข้อความนี้กับข้อความที่กำหนดไว้ก่อนหน้านี้ "เท็จ" จะล้างข้อความที่กำหนดไว้ก่อนหน้านี้ทั้งหมด (แบบง่ายและสุดท้ายคือ เนื้อหา ลิงก์คำแนะนำ และ Canvas) และเพิ่มข้อความที่กำหนดไว้ในพรอมต์นี้ "จริง" จะเพิ่มข้อความที่กำหนดไว้ในพรอมต์นี้ไปยังข้อความที่กำหนดไว้ในคำตอบก่อนหน้า การตั้งค่าฟิลด์นี้เป็น "จริง" จะเปิดใช้การต่อท้ายบางช่องภายในพรอมต์แบบง่าย พรอมต์คำแนะนำ และข้อความแจ้งของ Canvas (ส่วนหนึ่งของพรอมต์เนื้อหา) ด้วย ข้อความ "เนื้อหา" และ "ลิงก์" จะถูกเขียนทับเสมอหากมีการกำหนดไว้ในข้อความแจ้ง ค่าเริ่มต้นคือ "false"

override

boolean

ไม่บังคับ โหมดสำหรับวิธีผสานข้อความนี้กับข้อความที่กำหนดไว้ก่อนหน้า "จริง" ล้างข้อความที่กำหนดไว้ก่อนหน้านี้ทั้งหมด (แบบง่ายและสุดท้ายคือเนื้อหา ลิงก์คำแนะนำ และ Canvas) และเพิ่มข้อความที่กำหนดไว้ในพรอมต์นี้ "เท็จ" เพิ่มข้อความที่ระบุไว้ในพรอมต์นี้ไปยังข้อความที่กำหนดไว้ในคำตอบก่อนหน้า กำลังออกจากช่องนี้เป็น "false" ยังเปิดใช้การต่อท้ายบางช่องภายในพรอมต์แบบง่าย พรอมต์คำแนะนำ และข้อความแจ้งของ Canvas (ส่วนหนึ่งของพรอมต์เนื้อหา) ด้วย ข้อความ "เนื้อหา" และ "ลิงก์" จะถูกเขียนทับเสมอหากมีการกำหนดไว้ในข้อความแจ้ง ค่าเริ่มต้นคือ "false"

firstSimple

object (Simple)

ไม่บังคับ คำตอบแรกที่เป็นเสียงและข้อความเท่านั้น

content

object (Content)

ไม่บังคับ เนื้อหา เช่น การ์ด รายการ หรือสื่อที่จะแสดงต่อผู้ใช้

lastSimple

object (Simple)

ไม่บังคับ คำตอบแบบเสียงและข้อความสุดท้าย

suggestions[]

object (Suggestion)

ไม่บังคับ คำแนะนำที่แสดงต่อผู้ใช้ซึ่งจะปรากฏท้ายคำตอบเสมอ หากปุ่ม "ลบล้าง" ในช่องของข้อความแจ้งที่มีค่าเป็น "เท็จ" ระบบจะเพิ่มชื่อที่ระบุไว้ในช่องนี้ลงในชื่อที่กำหนดไว้ในพรอมต์คำแนะนำที่กำหนดไว้ก่อนหน้าและค่าที่ซ้ำกันจะถูกนำออก

canvas

object (Canvas)

ไม่บังคับ แสดงการตอบกลับ Interactive Canvas ที่จะส่งไปให้ผู้ใช้

เรียบง่าย

หมายถึงข้อความแจ้งง่ายๆ ที่จะส่งถึงผู้ใช้

การแสดง JSON
{
  "speech": string,
  "text": string
}
ช่อง
speech

string

ไม่บังคับ หมายถึงคำพูดที่ผู้ใช้พูด อาจเป็น SSML หรือการอ่านออกเสียงข้อความ หากปุ่ม "ลบล้าง" ในช่องพรอมต์ที่มี "true" เสียงพูดที่ระบุไว้ในช่องนี้จะแทนที่เสียงพูดของพรอมต์แบบง่ายก่อนหน้า

text

string

ข้อความที่ไม่บังคับที่จะแสดงในบับเบิลแชท หากไม่ระบุ ระบบจะใช้การแสดงผลฟิลด์เสียงพูดด้านบน มีอักขระได้ไม่เกิน 640 ตัว หากปุ่ม "ลบล้าง" ในช่องพรอมต์ที่มี "true" ข้อความที่ระบุไว้ในช่องนี้จะแทนที่ข้อความพรอมต์แบบง่ายก่อนหน้า

เนื้อหา

เนื้อหาที่จะแสดง

การแสดง JSON
{

  // Union field content can be only one of the following:
  "card": {
    object (Card)
  },
  "image": {
    object (Image)
  },
  "table": {
    object (Table)
  },
  "media": {
    object (Media)
  },
  "canvas": {
    object (Canvas)
  },
  "collection": {
    object (Collection)
  },
  "list": {
    object (List)
  }
  // End of list of possible types for union field content.
}
ช่อง
ช่องการรวม content เนื้อหา content ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
card

object (Card)

บัตรพื้นฐาน

image

object (Image)

รูปภาพ

table

object (Table)

การ์ดตาราง

media

object (Media)

การตอบกลับที่ระบุชุดสื่อที่จะเล่น

canvas
(deprecated)

object (Canvas)

คำตอบที่จะนำไปใช้สำหรับประสบการณ์ Canvas แบบอินเทอร์แอกทีฟ

collection

object (Collection)

การ์ดแสดงชุดตัวเลือกที่มีให้เลือก

list

object (List)

การ์ดแสดงรายการตัวเลือกที่มีให้เลือก

การ์ด

การ์ดพื้นฐานสำหรับแสดงข้อมูลบางอย่าง เช่น รูปภาพและ/หรือข้อความ

การแสดง JSON
{
  "title": string,
  "subtitle": string,
  "text": string,
  "image": {
    object (Image)
  },
  "imageFill": enum (ImageFill),
  "button": {
    object (Link)
  }
}
ช่อง
title

string

ชื่อโดยรวมของการ์ด ไม่บังคับ

subtitle

string

ไม่บังคับ

text

string

ข้อความเนื้อหาของการ์ด รองรับชุดไวยากรณ์มาร์กดาวน์สำหรับการจัดรูปแบบแบบจำกัด ต้องระบุ ยกเว้นกรณีที่มีรูปภาพอยู่

image

object (Image)

รูปภาพหลักของการ์ด ความสูงกำหนดไว้ที่ 192dp ไม่บังคับ

imageFill

enum (ImageFill)

วิธีเติมพื้นหลังของรูปภาพ ไม่บังคับ

button

object (Link)

ปุ่ม ไม่บังคับ

รูปภาพ

รูปภาพที่แสดงในการ์ด

การแสดง JSON
{
  "url": string,
  "alt": string,
  "height": integer,
  "width": integer
}
ช่อง
url

string

URL แหล่งที่มาของรูปภาพ รูปภาพสามารถใช้เป็น JPG, PNG และ GIF (ทั้งเป็นภาพเคลื่อนไหวและไม่เคลื่อนไหว) ตัวอย่างเช่นhttps://www.agentx.com/logo.png ต้องระบุ

alt

string

ข้อความอธิบายรูปภาพที่ใช้สำหรับการเข้าถึง เช่น โปรแกรมอ่านหน้าจอ ต้องระบุ

height

integer

ความสูงของรูปภาพเป็นพิกเซล ไม่บังคับ

width

integer

ความกว้างของรูปภาพเป็นพิกเซล ไม่บังคับ

ImageFill

ตัวเลือกการแสดงรูปภาพที่เป็นไปได้ซึ่งจะส่งผลต่อการนำเสนอรูปภาพ ควรใช้เมื่อสัดส่วนภาพของรูปภาพไม่ตรงกับสัดส่วนภาพของคอนเทนเนอร์รูปภาพ

Enum
UNSPECIFIED เติมรูปภาพที่ไม่ได้ระบุ
GRAY เติมช่องว่างระหว่างรูปภาพและคอนเทนเนอร์รูปภาพด้วยแถบสีเทา
WHITE เติมช่องว่างระหว่างรูปภาพและที่เก็บรูปภาพด้วยแถบสีขาว
CROPPED มีการปรับขนาดรูปภาพเพื่อให้ความกว้างและความสูงของรูปภาพตรงกับหรือเกินขนาดของคอนเทนเนอร์ การดำเนินการนี้อาจครอบตัดด้านบนและด้านล่างของรูปภาพหากความสูงของรูปภาพที่มีการปรับขนาดมากกว่าความสูงของคอนเทนเนอร์ หรือครอบตัดด้านซ้ายและขวาของรูปภาพหากความกว้างของรูปภาพที่มีการปรับขนาดมากกว่าความกว้างของคอนเทนเนอร์ ซึ่งคล้ายกับ "โหมดซูม" บนทีวีจอกว้าง เมื่อเล่นวิดีโอ 4:3

OpenUrl

การดำเนินการที่เกิดขึ้นเมื่อผู้ใช้เปิดลิงก์

การแสดง JSON
{
  "url": string,
  "hint": enum (UrlHint)
}
ช่อง
url

string

ฟิลด์ URL อาจเป็นรายการใดก็ได้ต่อไปนี้ - URL http/https สำหรับเปิดแอปที่ลิงก์กับแอปหรือหน้าเว็บ

hint

enum (UrlHint)

เป็นคำแนะนำสำหรับประเภท URL

UrlHint

คำแนะนำ URL ประเภทต่างๆ

Enum
AMP URL ที่ชี้ไปยังเนื้อหา AMP โดยตรง หรือไปยัง Canonical URL ซึ่งอ้างถึงเนื้อหา AMP ผ่าน

ตาราง

การ์ดตารางสำหรับแสดงตารางข้อความ

การแสดง JSON
{
  "title": string,
  "subtitle": string,
  "image": {
    object (Image)
  },
  "columns": [
    {
      object (TableColumn)
    }
  ],
  "rows": [
    {
      object (TableRow)
    }
  ],
  "button": {
    object (Link)
  }
}
ช่อง
title

string

ชื่อโดยรวมของตาราง ไม่บังคับ แต่ต้องตั้งค่าหากมีการตั้งค่าคำบรรยาย

subtitle

string

ชื่อรองของตาราง ไม่บังคับ

image

object (Image)

รูปภาพที่เชื่อมโยงกับตาราง ไม่บังคับ

columns[]

object (TableColumn)

ส่วนหัวและการจัดแนวคอลัมน์

rows[]

object (TableRow)

ข้อมูลแถวของตาราง เรารับประกันว่าแถว 3 แถวแรกจะแสดงขึ้น แต่บางแถวอาจถูกตัดออกในบางแพลตฟอร์ม โปรดทดสอบกับเครื่องจำลองเพื่อดูว่าจะแสดงแถวใดสำหรับแพลตฟอร์มหนึ่งๆ ในแพลตฟอร์มที่รองรับความสามารถ WEB_BROWSER คุณสามารถชี้ผู้ใช้ไปยังหน้าเว็บที่มีข้อมูลเพิ่มเติมได้

button

object (Link)

ปุ่ม

TableColumn

อธิบายคอลัมน์ในตาราง

การแสดง JSON
{
  "header": string,
  "align": enum (HorizontalAlignment)
}
ช่อง
header

string

ข้อความส่วนหัวของคอลัมน์

align

enum (HorizontalAlignment)

การจัดแนวแนวนอนของเนื้อหาในคอลัมน์ หากไม่ระบุ เนื้อหาจะอยู่ในแนวเดียวกับขอบนำหน้า

HorizontalAlignment

การจัดแนวเนื้อหาภายในเซลล์

Enum
UNSPECIFIED การจัดข้อความแนวนอนที่ไม่ระบุ
LEADING ขอบด้านการนำของเซลล์ โดยตัวเลือกนี้คือค่าเริ่มต้น
CENTER เนื้อหาจัดแนวกึ่งกลางคอลัมน์
TRAILING เนื้อหาอยู่ในแนวเดียวกับขอบด้านท้ายของคอลัมน์

TableRow

อธิบายแถวในตาราง

การแสดง JSON
{
  "cells": [
    {
      object (TableCell)
    }
  ],
  "divider": boolean
}
ช่อง
cells[]

object (TableCell)

เซลล์ในแถวนี้ ระบบรับประกันว่าจะแสดง 3 เซลล์แรก แต่เซลล์อื่นๆ อาจถูกตัดออกในบางพื้นผิว โปรดทดสอบด้วยเครื่องมือจำลองเพื่อดูว่าจะแสดงเซลล์ใดบนพื้นผิวที่กำหนด

divider

boolean

ระบุว่าควรมีตัวแบ่งหลังจากแต่ละแถวหรือไม่

TableCell

อธิบายเซลล์ในแถว

การแสดง JSON
{
  "text": string
}
ช่อง
text

string

เนื้อหาข้อความของเซลล์

สื่อ

แสดงออบเจ็กต์สื่อ 1 รายการ มีข้อมูลเกี่ยวกับสื่อ เช่น ชื่อ, คำอธิบาย, URL ฯลฯ

การแสดง JSON
{
  "mediaType": enum (MediaType),
  "startOffset": string,
  "optionalMediaControls": [
    enum (OptionalMediaControls)
  ],
  "mediaObjects": [
    {
      object (MediaObject)
    }
  ]
}
ช่อง
mediaType

enum (MediaType)

ประเภทสื่อ

startOffset

string (Duration format)

ออฟเซ็ตเริ่มต้นของออบเจ็กต์สื่อแรก

ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก สิ้นสุดด้วย "s" ตัวอย่างเช่น "3.5s"

optionalMediaControls[]

enum (OptionalMediaControls)

ประเภทการควบคุมสื่อที่ไม่บังคับที่เซสชันการตอบสนองสื่อนี้รองรับได้ หากตั้งค่าไว้ จะมีการส่งคำขอไปยัง 3p เมื่อมีเหตุการณ์สื่อบางอย่างเกิดขึ้น หากไม่ได้ตั้งค่า 3p ยังคงต้องจัดการประเภทการควบคุมเริ่มต้น 2 ประเภท ได้แก่ FINISHED และ FAILED

mediaObjects[]

object (MediaObject)

รายการออบเจ็กต์สื่อ

MediaType

ประเภทสื่อของคำตอบนี้

Enum
MEDIA_TYPE_UNSPECIFIED ประเภทสื่อที่ไม่ระบุ
AUDIO ไฟล์เสียง
MEDIA_STATUS_ACK ตอบกลับเพื่อรับทราบรายงานสถานะสื่อ

OptionalMediaControls

ประเภทตัวควบคุมสื่อที่ไม่บังคับซึ่งการตอบกลับสื่อจะรองรับได้

Enum
OPTIONAL_MEDIA_CONTROLS_UNSPECIFIED ไม่ได้ระบุค่า
PAUSED เหตุการณ์ที่หยุดชั่วคราว ทริกเกอร์เมื่อผู้ใช้หยุดสื่อชั่วคราว
STOPPED หยุดกิจกรรมแล้ว ทริกเกอร์เมื่อผู้ใช้ออกจากเซสชัน 3p ระหว่างการเล่นสื่อ

MediaObject

แสดงออบเจ็กต์สื่อเดียว

การแสดง JSON
{
  "name": string,
  "description": string,
  "url": string,
  "image": {
    object (MediaImage)
  }
}
ช่อง
name

string

ชื่อออบเจ็กต์สื่อนี้

description

string

คำอธิบายของออบเจ็กต์สื่อนี้

url

string

URL ที่ชี้ไปยังเนื้อหาสื่อ

image

object (MediaImage)

รูปภาพที่จะแสดงพร้อมการ์ดสื่อ

MediaImage

รูปภาพที่จะแสดงพร้อมการ์ดสื่อ

การแสดง JSON
{

  // Union field image can be only one of the following:
  "large": {
    object (Image)
  },
  "icon": {
    object (Image)
  }
  // End of list of possible types for union field image.
}
ช่อง
ช่องการรวม image รูปภาพ image ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
large

object (Image)

รูปภาพขนาดใหญ่ เช่น ปกอัลบั้ม ฯลฯ

icon

object (Image)

ไอคอนรูปภาพขนาดเล็กที่แสดงอยู่ด้านขวาจากชื่อ โดยปรับขนาดเป็น 36x36 dp

คอลเล็กชัน

การ์ดสำหรับนำเสนอชุดตัวเลือกให้เลือก

การแสดง JSON
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (CollectionItem)
    }
  ],
  "imageFill": enum (ImageFill)
}
ช่อง
title

string

ชื่อคอลเล็กชัน ไม่บังคับ

subtitle

string

คำบรรยายของคอลเล็กชัน ไม่บังคับ

items[]

object (CollectionItem)

ต่ำสุด: 2 สูงสุด: 10

imageFill

enum (ImageFill)

วิธีเติมพื้นหลังรูปภาพของรายการคอลเล็กชัน ไม่บังคับ

CollectionItem

รายการในคอลเล็กชัน

การแสดง JSON
{
  "key": string
}
ช่อง
key

string

ต้องระบุ คีย์ NLU ที่ตรงกับชื่อคีย์รายการในประเภทที่เชื่อมโยง

รายการ

การ์ดสำหรับแสดงรายการตัวเลือกที่มีให้เลือก

การแสดง JSON
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (ListItem)
    }
  ]
}
ช่อง
title

string

ชื่อรายการ ไม่บังคับ

subtitle

string

คำบรรยายของรายการ ไม่บังคับ

items[]

object (ListItem)

ต่ำสุด: 2 สูงสุด: 30

ListItem

รายการข้อมูลในรายการ

การแสดง JSON
{
  "key": string
}
ช่อง
key

string

ต้องระบุ คีย์ NLU ที่ตรงกับชื่อคีย์รายการในประเภทที่เชื่อมโยง

คำแนะนำ

ป้อนคำแนะนำที่จะแสดงต่อผู้ใช้

การแสดง JSON
{
  "title": string
}
ช่อง
title

string

ต้องระบุ ข้อความที่แสดงในชิปคำแนะนำ เมื่อแตะ ข้อความนี้จะโพสต์กลับไปที่การสนทนาแบบคำต่อคำราวกับว่าผู้ใช้ได้พิมพ์ลงไป ชื่อแต่ละรายการต้องไม่ซ้ำกันในชุดชิปคำแนะนำ สูงสุด 25 อักขระ

การวินิจฉัย

ข้อมูลการวินิจฉัยที่เกี่ยวข้องกับรอบการสนทนา

การแสดง JSON
{
  "actionsBuilderEvents": [
    {
      object (ExecutionEvent)
    }
  ]
}
ช่อง
actionsBuilderEvents[]

object (ExecutionEvent)

รายการเหตุการณ์พร้อมรายละเอียดเกี่ยวกับการประมวลผลรอบการสนทนาตลอดระยะต่างๆ ของโมเดลการโต้ตอบของ Actions Builder ป้อนข้อมูลสำหรับเครื่องมือสร้างการดำเนินการและ แอป Actions SDK เท่านั้น

ExecutionEvent

มีข้อมูลเกี่ยวกับเหตุการณ์ของการดำเนินการที่เกิดขึ้นระหว่างการประมวลผลคำขอสนทนาของ Actions Builder ดูภาพรวมของขั้นตอนต่างๆ ที่เกี่ยวข้องกับคำขอการสนทนาได้ที่ https://developers.google.com/assistant/conversational/actions

การแสดง JSON
{
  "eventTime": string,
  "executionState": {
    object (ExecutionState)
  },
  "status": {
    object (Status)
  },
  "warningMessages": [
    string
  ],

  // Union field EventData can be only one of the following:
  "userInput": {
    object (UserConversationInput)
  },
  "intentMatch": {
    object (IntentMatch)
  },
  "conditionsEvaluated": {
    object (ConditionsEvaluated)
  },
  "onSceneEnter": {
    object (OnSceneEnter)
  },
  "webhookRequest": {
    object (WebhookRequest)
  },
  "webhookResponse": {
    object (WebhookResponse)
  },
  "webhookInitiatedTransition": {
    object (WebhookInitiatedTransition)
  },
  "slotMatch": {
    object (SlotMatch)
  },
  "slotRequested": {
    object (SlotRequested)
  },
  "slotValidated": {
    object (SlotValidated)
  },
  "formFilled": {
    object (FormFilled)
  },
  "waitingUserInput": {
    object (WaitingForUserInput)
  },
  "endConversation": {
    object (EndConversation)
  }
  // End of list of possible types for union field EventData.
}
ช่อง
eventTime

string (Timestamp format)

การประทับเวลาเมื่อเหตุการณ์เกิดขึ้น

การประทับเวลาเป็น RFC3339 UTC "Zulu" โดยมีความละเอียดระดับนาโนวินาทีและมีเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง: "2014-10-02T15:01:23Z" และ "2014-10-02T15:01:23.045123456Z"

executionState

object (ExecutionState)

สถานะของการดำเนินการระหว่างเหตุการณ์นี้

status

object (Status)

สถานะผลลัพธ์ของขั้นตอนการดำเนินการเฉพาะ

warningMessages[]

string

รายการคำเตือนที่สร้างขึ้นระหว่างการดำเนินการของเหตุการณ์นี้ คำเตือนคือเคล็ดลับสำหรับนักพัฒนาซอฟต์แวร์ที่ค้นพบระหว่างส่งคำขอการสนทนา การดำเนินการเหล่านี้มักจะไม่สำคัญและไม่หยุดการดำเนินการตามคำขอ เช่น ระบบอาจสร้างคําเตือนเมื่อเว็บฮุคพยายามลบล้างประเภทที่กําหนดเองซึ่งไม่มีอยู่ ระบบจะรายงานข้อผิดพลาดเป็นรหัสสถานะที่ล้มเหลว แต่ก็ยังอาจแสดงคำเตือนได้แม้ว่าจะมีสถานะปกติก็ตาม

ช่องการรวม EventData ข้อมูลโดยละเอียดที่เฉพาะเจาะจงของเหตุการณ์ต่างๆ ที่อาจเกี่ยวข้องกับการประมวลผลรอบการสนทนา ฟิลด์ที่ตั้งไว้ที่นี่จะกำหนดประเภทของเหตุการณ์นี้ EventData ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
userInput

object (UserConversationInput)

เหตุการณ์การจัดการข้อมูลจากผู้ใช้

intentMatch

object (IntentMatch)

เหตุการณ์การจับคู่ Intent

conditionsEvaluated

object (ConditionsEvaluated)

เหตุการณ์การประเมินเงื่อนไข

onSceneEnter

object (OnSceneEnter)

เหตุการณ์การดำเนินการ OnSceneEnter

webhookRequest

object (WebhookRequest)

กิจกรรมการส่งคำขอเว็บฮุค

webhookResponse

object (WebhookResponse)

เหตุการณ์ใบเสร็จการตอบกลับเว็บฮุค

webhookInitiatedTransition

object (WebhookInitiatedTransition)

เหตุการณ์การเปลี่ยนที่เริ่มต้นจากเว็บฮุค

slotMatch

object (SlotMatch)

เหตุการณ์การจับคู่สล็อต

slotRequested

object (SlotRequested)

เหตุการณ์คำขอสล็อต

slotValidated

object (SlotValidated)

เหตุการณ์การตรวจสอบสล็อต

formFilled

object (FormFilled)

เหตุการณ์การกรอกแบบฟอร์ม

waitingUserInput

object (WaitingForUserInput)

กำลังรอเหตุการณ์การป้อนข้อมูลจากผู้ใช้

endConversation

object (EndConversation)

กิจกรรมสิ้นสุดการสนทนา

ExecutionState

สถานะปัจจุบันของการดำเนินการ

การแสดง JSON
{
  "currentSceneId": string,
  "sessionStorage": {
    object
  },
  "slots": {
    object (Slots)
  },
  "promptQueue": [
    {
      object (Prompt)
    }
  ],
  "userStorage": {
    object
  },
  "householdStorage": {
    object
  }
}
ช่อง
currentSceneId

string

รหัสของฉากที่ทำงานอยู่

sessionStorage

object (Struct format)

สถานะของพื้นที่เก็บข้อมูลเซสชัน: https://developers.google.com/assistant/conversational/storage-session

slots

object (Slots)

สถานะของสล็อตที่เติม (หากมี): https://developers.google.com/assistant/conversational/scenes#slot_filling

promptQueue[]

object (Prompt)

คิวพรอมต์: https://developers.google.com/assistant/conversational/prompts

userStorage

object (Struct format)

สถานะพื้นที่เก็บข้อมูลของผู้ใช้: https://developers.google.com/assistant/conversational/storage-user

householdStorage

object (Struct format)

สถานะพื้นที่เก็บข้อมูลในบ้าน: https://developers.google.com/assistant/conversational/storage-home

สล็อต

แสดงสถานะปัจจุบันของสล็อตของฉาก

การแสดง JSON
{
  "status": enum (SlotFillingStatus),
  "slots": {
    string: {
      object (Slot)
    },
    ...
  }
}
ช่อง
status

enum (SlotFillingStatus)

สถานะปัจจุบันของการเติมช่อง

slots

map (key: string, value: object (Slot))

สล็อตที่เชื่อมโยงกับฉากปัจจุบัน

ออบเจ็กต์ที่มีรายการคู่ "key": value ตัวอย่างเช่น { "name": "wrench", "mass": "1.3kg", "count": "3" }

SlotFillingStatus

แสดงสถานะปัจจุบันของการเติมช่องโฆษณา

Enum
UNSPECIFIED ค่าสำรองเมื่อไม่ได้ใส่ข้อมูลในช่องการใช้งาน
INITIALIZED เริ่มต้นสล็อตแล้ว แต่การเติมช่องโฆษณายังไม่เริ่ม
COLLECTING กำลังรวบรวมค่าของช่องโฆษณา
FINAL ค่าของช่องทั้งหมดเป็นค่าสุดท้ายและเปลี่ยนแปลงไม่ได้

สล็อต

แสดงช่องโฆษณา

การแสดง JSON
{
  "mode": enum (SlotMode),
  "status": enum (SlotStatus),
  "value": value,
  "updated": boolean,
  "prompt": {
    object (Prompt)
  }
}
ช่อง
mode

enum (SlotMode)

โหมดของช่อง (จำเป็นหรือไม่บังคับ) ตั้งค่าได้โดยนักพัฒนาซอฟต์แวร์

status

enum (SlotStatus)

สถานะของช่องโฆษณา

value

value (Value format)

มูลค่าของช่อง การเปลี่ยนค่านี้ในคำตอบจะเป็นการแก้ไขค่าในการเติมช่องโฆษณา

updated

boolean

ระบุว่ามีการรวบรวมค่าช่องโฆษณาในการเลี้ยวล่าสุดหรือไม่ ช่องนี้เป็นแบบอ่านอย่างเดียว

prompt

object (Prompt)

ไม่บังคับ ระบบจะส่งข้อความแจ้งนี้ไปยังผู้ใช้เมื่อจำเป็นต้องเติมช่องโฆษณาลงในช่องที่กำหนด ข้อความแจ้งนี้จะลบล้างข้อความแจ้งที่มีอยู่ซึ่งกำหนดไว้ในคอนโซล ช่องนี้ไม่รวมอยู่ในคำขอเว็บฮุค

SlotMode

แสดงโหมดของช่อง นั่นคือ ระบุว่าจำเป็นหรือไม่

Enum
MODE_UNSPECIFIED ค่าสำรองเมื่อไม่ได้ใส่ข้อมูลในช่องการใช้งาน
OPTIONAL บ่งบอกว่าไม่จำเป็นต้องเติมช่องเพื่อเติมช่องให้สมบูรณ์
REQUIRED บ่งบอกว่าต้องเติมช่องเพื่อเติมช่องให้สมบูรณ์

SlotStatus

แสดงสถานะของช่องโฆษณา

Enum
SLOT_UNSPECIFIED ค่าสำรองเมื่อไม่ได้ใส่ข้อมูลในช่องการใช้งาน
EMPTY บ่งบอกว่าช่องโฆษณาไม่มีค่าใดๆ คุณจะแก้ไขสถานะนี้ผ่านคำตอบไม่ได้
INVALID บ่งบอกว่าค่าของช่องไม่ถูกต้อง คุณตั้งค่าสถานะนี้ได้ผ่านการตอบกลับ
FILLED บ่งบอกว่าช่องโฆษณามีค่า คุณจะแก้ไขสถานะนี้ผ่านคำตอบไม่ได้

สถานะ

ประเภท Status กำหนดโมเดลข้อผิดพลาดเชิงตรรกะที่เหมาะกับสภาพแวดล้อมในการเขียนโปรแกรมแบบต่างๆ ซึ่งรวมถึง REST API และ RPC API gRPC ใช้ ข้อความ Status แต่ละข้อความจะมีข้อมูล 3 ส่วน ได้แก่ รหัสข้อผิดพลาด ข้อความแสดงข้อผิดพลาด และรายละเอียดข้อผิดพลาด

คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบข้อผิดพลาดนี้และวิธีใช้รูปแบบดังกล่าวได้ในคู่มือการออกแบบ API

การแสดง JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
ช่อง
code

integer

รหัสสถานะ ซึ่งควรเป็นค่า enum ของ google.rpc.Code

message

string

ข้อความแสดงข้อผิดพลาดที่นักพัฒนาแอปเห็น ซึ่งควรเป็นภาษาอังกฤษ ข้อความแสดงข้อผิดพลาดที่แสดงต่อผู้ใช้ควรแปลและส่งในช่อง google.rpc.Status.details หรือแปลโดยไคลเอ็นต์

details[]

object

รายการข้อความที่มีรายละเอียดข้อผิดพลาด API จะใช้ชุดประเภทข้อความที่พบได้ทั่วไป

ออบเจ็กต์ที่มีช่องประเภทที่กำหนดเอง ช่องเพิ่มเติม "@type" จะมี URI ที่ระบุประเภท ตัวอย่างเช่น { "id": 1234, "@type": "types.example.com/standard/id" }

UserConversationInput

ข้อมูลที่เกี่ยวข้องกับข้อมูลจากผู้ใช้

การแสดง JSON
{
  "type": string,
  "originalQuery": string
}
ช่อง
type

string

ประเภทข้อมูลจากผู้ใช้ เช่น แป้นพิมพ์ เสียง การแตะ ฯลฯ

originalQuery

string

การป้อนข้อความต้นฉบับจากผู้ใช้

IntentMatch

ข้อมูลเกี่ยวกับการจับคู่ Intent ที่ทริกเกอร์ (ส่วนกลางหรือภายในฉาก): https://developers.google.com/assistant/conversational/intents

การแสดง JSON
{
  "intentId": string,
  "intentParameters": {
    string: {
      object (IntentParameterValue)
    },
    ...
  },
  "handler": string,
  "nextSceneId": string
}
ช่อง
intentId

string

รหัส Intent ที่เรียกใช้การโต้ตอบนี้

intentParameters

map (key: string, value: object (IntentParameterValue))

พารามิเตอร์ของ Intent ที่ทริกเกอร์การโต้ตอบนี้

ออบเจ็กต์ที่มีรายการคู่ "key": value ตัวอย่างเช่น { "name": "wrench", "mass": "1.3kg", "count": "3" }

handler

string

ชื่อของเครื่องจัดการที่แนบกับการโต้ตอบนี้

nextSceneId

string

ฉากที่การโต้ตอบนี้จะนำไป

ConditionsEvaluated

ผลการประเมินเงื่อนไข: https://developers.google.com/assistant/conversational/scenes#conditions

การแสดง JSON
{
  "failedConditions": [
    {
      object (Condition)
    }
  ],
  "successCondition": {
    object (Condition)
  }
}
ช่อง
failedConditions[]

object (Condition)

รายการเงื่อนไขที่ประเมินเป็น "เท็จ"

successCondition

object (Condition)

เงื่อนไขแรกที่ได้รับการประเมินเป็น "จริง" หากมี

เงื่อนไข

เงื่อนไขที่ประเมินแล้ว

การแสดง JSON
{
  "expression": string,
  "handler": string,
  "nextSceneId": string
}
ช่อง
expression

string

นิพจน์ที่ระบุในเงื่อนไขนี้

handler

string

ชื่อเครื่องจัดการที่ระบุในเงื่อนไขที่ประเมิน

nextSceneId

string

ฉากปลายทางที่ระบุในเงื่อนไขที่ประเมินแล้ว

OnSceneEnter

ข้อมูลเกี่ยวกับการดำเนินการของระยะ onSceneEnter: https://developers.google.com/assistant/conversational/scenes#onEnter

การแสดง JSON
{
  "handler": string
}
ช่อง
handler

string

ชื่อเครื่องจัดการที่ระบุในเหตุการณ์ onSceneEnter

WebhookRequest

ข้อมูลเกี่ยวกับคำขอที่ส่งไปยังเว็บฮุคของการดำเนินการ: https://developers.google.com/assistant/conversational/webhooks#payloads

การแสดง JSON
{
  "requestJson": string
}
ช่อง
requestJson

string

เพย์โหลดของคำขอเว็บฮุค

WebhookResponse

ข้อมูลเกี่ยวกับการตอบกลับที่ได้รับจากเว็บฮุคของการดำเนินการ: https://developers.google.com/assistant/conversational/webhooks#payloads

การแสดง JSON
{
  "responseJson": string
}
ช่อง
responseJson

string

เพย์โหลดของการตอบสนองของเว็บฮุค

WebhookInitiatedTransition

เหตุการณ์ที่ทริกเกอร์โดยโหมดปลายทางที่แสดงผลจากเว็บฮุค: https://developers.google.com/assistant/conversational/webhooks#transition_scenes

การแสดง JSON
{
  "nextSceneId": string
}
ช่อง
nextSceneId

string

รหัสของฉากที่เกิดการเปลี่ยน

SlotMatch

ข้อมูลเกี่ยวกับช่องที่ตรงกัน: https://developers.google.com/assistant/conversational/scenes#slot_filling

การแสดง JSON
{
  "nluParameters": {
    string: {
      object (IntentParameterValue)
    },
    ...
  }
}
ช่อง
nluParameters

map (key: string, value: object (IntentParameterValue))

พารามิเตอร์ที่ NLU ดึงมาจากข้อมูลของผู้ใช้

ออบเจ็กต์ที่มีรายการคู่ "key": value ตัวอย่างเช่น { "name": "wrench", "mass": "1.3kg", "count": "3" }

SlotRequested

ข้อมูลเกี่ยวกับสล็อตที่ขอในปัจจุบัน: https://developers.google.com/assistant/conversational/scenes#slot_filling

การแสดง JSON
{
  "slot": string,
  "prompt": {
    object (Prompt)
  }
}
ช่อง
slot

string

ชื่อของสล็อตที่ขอ

prompt

object (Prompt)

ข้อความแจ้งเกี่ยวกับช่องโฆษณา

SlotValidated

เหตุการณ์ที่เกิดขึ้นหลังจากการตรวจสอบเว็บฮุคสำหรับสล็อตเสร็จสิ้น: https://developers.google.com/assistant/conversational/scenes#slot_filling

FormFilled

กิจกรรมที่เกิดขึ้นเมื่อกรอกแบบฟอร์มครบถ้วนแล้ว: https://developers.google.com/assistant/conversational/scenes#slot_filling

WaitingForUserInput

เหตุการณ์ที่เกิดขึ้นเมื่อระบบต้องการอินพุตจากผู้ใช้: https://developers.google.com/assistant/conversational/scenes#input

EndConversation

กิจกรรมที่แจ้งว่าการสนทนากับตัวแทนสิ้นสุดแล้ว