- คำขอ HTTP
- พารามิเตอร์เส้นทาง
- เนื้อหาคำขอ
- เนื้อหาการตอบกลับ
- UserInput
- InputType
- คุณสมบัติของอุปกรณ์
- แพลตฟอร์ม
- ตำแหน่ง
- LatLng
- เอาต์พุต
- ผืนผ้าใบ
- พรอมต์
- เรียบง่าย
- เนื้อหา
- บัตร
- รูปภาพ
- ImageFill
- ลิงก์
- OpenUrl
- UrlHint
- ตาราง
- TableColumn
- HorizontalAlignment
- TableRow
- TableCell
- สื่อ
- MediaType
- OptionalMediaControls
- MediaObject
- MediaImage
- การรวบรวม
- CollectionItem
- แสดงรายการ
- ListItem
- คำแนะนำ
- การวินิจฉัย
- ExecutionEvent
- ExecutionState
- สล็อต
- SlotFillingStatus
- ช่อง
- SlotMode
- SlotStatus
- สถานะ
- UserConversationInput
- IntentMatch
- ConditionsEvaluated
- เงื่อนไข
- OnSceneEnter
- WebhookRequest
- WebhookResponse
- WebhookInitiatedTransition
- SlotMatch
- SlotRequested
- SlotValidated
- FormFilled
- WaitingForUserInput
- EndConversation
เล่นการสนทนารอบเดียว
คำขอ HTTP
POST https://actions.googleapis.com/v2/{project=projects/*}:sendInteraction
URL ใช้ไวยากรณ์การแปลง gRPC
พารามิเตอร์เส้นทาง
| พารามิเตอร์ | |
|---|---|
| project | 
 ต้องระบุ โปรเจ็กต์ที่กำลังทดสอบ ซึ่งระบุด้วยรหัสโปรเจ็กต์ รูปแบบ: projects/{project} | 
เนื้อหาของคำขอ
เนื้อหาของคำขอมีข้อมูลที่มีโครงสร้างต่อไปนี้
| การแสดง JSON | |
|---|---|
| { "input": { object ( | |
| ช่อง | |
|---|---|
| input | 
 ต้องระบุ ข้อมูลที่ผู้ใช้ป้อน | 
| deviceProperties | 
 ต้องระบุ คุณสมบัติของอุปกรณ์ที่ใช้ในการโต้ตอบกับการดำเนินการ | 
| conversationToken | 
 โทเค็นทึบแสงที่ต้องส่งว่าได้รับจาก SendInteractionResponse ในการโต้ตอบก่อนหน้า คุณสามารถไม่ได้ตั้งค่านี้เพื่อเริ่มการสนทนาใหม่ ไม่ว่าจะเป็นการโต้ตอบแรกของเซสชันทดสอบหรือการออกจากการสนทนาก่อนหน้าและเริ่มการสนทนาใหม่ | 
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
ตอบกลับการสนทนาทั้งรอบ
| การแสดง JSON | |
|---|---|
| { "output": { object ( | |
| ช่อง | |
|---|---|
| output | 
 เอาต์พุตที่แสดงต่อผู้ใช้ | 
| diagnostics | 
 ข้อมูลการวินิจฉัยซึ่งอธิบายวิธีจัดการคำขอ | 
| conversationToken | 
 โทเค็นทึบแสงที่จะตั้งค่าใน SendInteractionRequest ในการเรียกใช้ RPC ครั้งถัดไปเพื่อสนทนาต่อ | 
UserInput
ข้อมูลจากผู้ใช้ที่ได้จากรอบการสนทนา
| การแสดง JSON | |
|---|---|
| {
  "query": string,
  "type": enum ( | |
| ช่อง | |
|---|---|
| query | 
 เนื้อหาของข้อมูลที่ผู้ใช้ส่ง | 
| type | 
 ประเภทของอินพุต | 
InputType
ระบุแหล่งที่มาของอินพุต ข้อความค้นหาที่พิมพ์ หรือการค้นหาด้วยเสียง
| Enum | |
|---|---|
| INPUT_TYPE_UNSPECIFIED | แหล่งที่มาของอินพุตที่ไม่ระบุ | 
| TOUCH | การค้นหาจากการโต้ตอบ GUI | 
| VOICE | การค้นหาด้วยเสียง | 
| KEYBOARD | ข้อความค้นหาที่พิมพ์ | 
| URL | ลิงก์ URL ทำให้เกิดการดำเนินการ | 
คุณสมบัติของอุปกรณ์
พร็อพเพอร์ตี้ของอุปกรณ์ที่เกี่ยวข้องกับรอบการสนทนา
| การแสดง JSON | |
|---|---|
| { "surface": enum ( | |
| ช่อง | |
|---|---|
| surface | 
 แพลตฟอร์มที่ใช้สำหรับการโต้ตอบกับการดำเนินการ | 
| location | 
 ตำแหน่งอุปกรณ์ เช่น ละติจูด ลองจิจูด และที่อยู่ที่จัดรูปแบบแล้ว | 
| locale | 
 ตั้งค่าภาษาตามที่ตั้งค่าไว้ในอุปกรณ์ รูปแบบควรเป็นไปตาม BCP 47: https://tools.ietf.org/html/bcp47 ตัวอย่าง: en, en-US, es-419 (ดูตัวอย่างเพิ่มเติมที่ https://tools.ietf.org/html/bcp47#appendix-A) | 
| timeZone | 
 เขตเวลาตามที่ตั้งค่าไว้ในอุปกรณ์ รูปแบบควรเป็นไปตามฐานข้อมูลเขตเวลาของ 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 ( | |
| ช่อง | |
|---|---|
| coordinates | 
 พิกัดทางภูมิศาสตร์ ต้องมี [DEVICE_PRECISE_LOCATION] สิทธิ์ [google.actions.v2.Permissions.DEVICE_PRECISE_LOCATION] | 
| formattedAddress | 
 ที่อยู่ที่แสดง เช่น "1600 Amphitheatre Pkwy, Mountain View, CA 94043" ต้องมี [DEVICE_PRECISE_LOCATION] สิทธิ์ [google.actions.v2.Permissions.DEVICE_PRECISE_LOCATION] | 
| zipCode | 
 รหัสไปรษณีย์ ต้องมี [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permissions.DEVICE_PRECISE_LOCATION] หรือ [DEVICE_COARSE_LOCATION] สิทธิ์ [google.actions.v2.Permissions.DEVICE_COARSE_LOCATION] | 
| city | 
 เมือง ต้องมี [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 | 
 ละติจูด หน่วยเป็นองศา โดยต้องอยู่ในช่วง [-90.0, +90.0] | 
| longitude | 
 ลองจิจูด หน่วยเป็นองศา โดยต้องอยู่ในช่วง [-180.0, +180.0] | 
เอาต์พุต
เอาต์พุตที่ผู้ใช้มองเห็นได้ในรอบการสนทนา
| การแสดง JSON | |
|---|---|
| { "text": string, "speech": [ string ], "canvas": { object ( | |
| ช่อง | |
|---|---|
| text | 
 คำตอบแบบเสียงพูดที่ส่งถึงผู้ใช้เป็นสตริงธรรมดา | 
| speech[] | 
 เนื้อหาที่เป็นสุนทรพจน์โดยการดำเนินการดังกล่าว ซึ่งอาจรวมถึงองค์ประกอบมาร์กอัป เช่น SSML | 
| canvas | 
 เนื้อหา Interactive Canvas | 
| actionsBuilderPrompt | 
 สถานะของข้อความแจ้งเมื่อสิ้นสุดรอบการสนทนา ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความแจ้งได้ที่ https://developers.google.com/assistant/conversational/prompts | 
ผ้าใบ
แสดงการตอบกลับ Interactive Canvas ที่จะส่งไปให้ผู้ใช้ ค่านี้สามารถใช้ร่วมกับ "firstSimple" ในข้อความแจ้งที่มีคำสั่งให้พูดกับผู้ใช้นอกเหนือจากการแสดงการตอบกลับ Canvas แบบอินเทอร์แอกทีฟ ขนาดสูงสุดของการตอบกลับคือ 50 กิโลไบต์
| การแสดง JSON | |
|---|---|
| { "url": string, "data": [ value ], "suppressMic": boolean, "enableFullScreen": boolean } | |
| ช่อง | |
|---|---|
| url | 
 URL ของเว็บแอป Canvas แบบอินเทอร์แอกทีฟที่จะโหลด หากไม่ได้ตั้งค่า ระบบจะนำ URL จากแคนวาสที่ใช้งานอยู่มาใช้ซ้ำ | 
| data[] | 
 ไม่บังคับ ข้อมูล JSON ที่จะส่งไปยังหน้าเว็บประสบการณ์แบบสมจริงเป็นเหตุการณ์ หากปุ่ม "ลบล้าง" ในช่องพรอมต์ที่มีอยู่มีค่าเป็น "เท็จ" ระบบจะเพิ่มค่าข้อมูลที่กําหนดไว้ในข้อความแจ้งของ Canvas นี้หลังจากค่าข้อมูลที่กําหนดไว้ในข้อความแจ้งก่อนหน้าของ Canvas | 
| suppressMic | 
 ไม่บังคับ ค่าเริ่มต้น: false | 
| enableFullScreen | 
 หากเป็น  | 
พรอมต์
แสดงคำตอบต่อผู้ใช้
| การแสดง JSON | |
|---|---|
| { "append": boolean, "override": boolean, "firstSimple": { object ( | |
| ช่อง | |
|---|---|
| append | 
 ไม่บังคับ โหมดสำหรับวิธีผสานข้อความนี้กับข้อความที่กำหนดไว้ก่อนหน้านี้ "เท็จ" จะล้างข้อความที่กำหนดไว้ก่อนหน้านี้ทั้งหมด (แบบง่ายและสุดท้ายคือ เนื้อหา ลิงก์คำแนะนำ และ Canvas) และเพิ่มข้อความที่กำหนดไว้ในพรอมต์นี้ "จริง" จะเพิ่มข้อความที่กำหนดไว้ในพรอมต์นี้ไปยังข้อความที่กำหนดไว้ในคำตอบก่อนหน้า การตั้งค่าฟิลด์นี้เป็น "จริง" จะเปิดใช้การต่อท้ายบางช่องภายในพรอมต์แบบง่าย พรอมต์คำแนะนำ และข้อความแจ้งของ Canvas (ส่วนหนึ่งของพรอมต์เนื้อหา) ด้วย ข้อความ "เนื้อหา" และ "ลิงก์" จะถูกเขียนทับเสมอหากมีการกำหนดไว้ในข้อความแจ้ง ค่าเริ่มต้นคือ "false" | 
| override | 
 ไม่บังคับ โหมดสำหรับวิธีผสานข้อความนี้กับข้อความที่กำหนดไว้ก่อนหน้า "จริง" ล้างข้อความที่กำหนดไว้ก่อนหน้านี้ทั้งหมด (แบบง่ายและสุดท้ายคือเนื้อหา ลิงก์คำแนะนำ และ Canvas) และเพิ่มข้อความที่กำหนดไว้ในพรอมต์นี้ "เท็จ" เพิ่มข้อความที่ระบุไว้ในพรอมต์นี้ไปยังข้อความที่กำหนดไว้ในคำตอบก่อนหน้า กำลังออกจากช่องนี้เป็น "false" ยังเปิดใช้การต่อท้ายบางช่องภายในพรอมต์แบบง่าย พรอมต์คำแนะนำ และข้อความแจ้งของ Canvas (ส่วนหนึ่งของพรอมต์เนื้อหา) ด้วย ข้อความ "เนื้อหา" และ "ลิงก์" จะถูกเขียนทับเสมอหากมีการกำหนดไว้ในข้อความแจ้ง ค่าเริ่มต้นคือ "false" | 
| firstSimple | 
 ไม่บังคับ คำตอบแรกที่เป็นเสียงและข้อความเท่านั้น | 
| content | 
 ไม่บังคับ เนื้อหา เช่น การ์ด รายการ หรือสื่อที่จะแสดงต่อผู้ใช้ | 
| lastSimple | 
 ไม่บังคับ คำตอบแบบเสียงและข้อความสุดท้าย | 
| suggestions[] | 
 ไม่บังคับ คำแนะนำที่แสดงต่อผู้ใช้ซึ่งจะปรากฏท้ายคำตอบเสมอ หากปุ่ม "ลบล้าง" ในช่องของข้อความแจ้งที่มีค่าเป็น "เท็จ" ระบบจะเพิ่มชื่อที่ระบุไว้ในช่องนี้ลงในชื่อที่กำหนดไว้ในพรอมต์คำแนะนำที่กำหนดไว้ก่อนหน้าและค่าที่ซ้ำกันจะถูกนำออก | 
| link | 
 ไม่บังคับ ชิปคำแนะนำเพิ่มเติมที่สามารถลิงก์ไปยังแอปหรือเว็บไซต์ที่เกี่ยวข้องได้ ระบบจะแสดงผลชิปโดยใช้ชื่อ "เปิด  | 
| canvas | 
 ไม่บังคับ แสดงการตอบกลับ Interactive Canvas ที่จะส่งไปให้ผู้ใช้ | 
เรียบง่าย
หมายถึงข้อความแจ้งง่ายๆ ที่จะส่งถึงผู้ใช้
| การแสดง JSON | |
|---|---|
| { "speech": string, "text": string } | |
| ช่อง | |
|---|---|
| speech | 
 ไม่บังคับ หมายถึงคำพูดที่ผู้ใช้พูด อาจเป็น SSML หรือการอ่านออกเสียงข้อความ หากปุ่ม "ลบล้าง" ในช่องพรอมต์ที่มี "true" เสียงพูดที่ระบุไว้ในช่องนี้จะแทนที่เสียงพูดของพรอมต์แบบง่ายก่อนหน้า | 
| text | 
 ข้อความที่ไม่บังคับที่จะแสดงในบับเบิลแชท หากไม่ระบุ ระบบจะใช้การแสดงผลฟิลด์เสียงพูดด้านบน มีอักขระได้ไม่เกิน 640 ตัว หากปุ่ม "ลบล้าง" ในช่องพรอมต์ที่มี "true" ข้อความที่ระบุไว้ในช่องนี้จะแทนที่ข้อความพรอมต์แบบง่ายก่อนหน้า | 
เนื้อหา
เนื้อหาที่จะแสดง
| การแสดง JSON | |
|---|---|
| { // Union field | |
| ช่อง | ||
|---|---|---|
| ช่องการรวม contentเนื้อหาcontentต้องเป็นค่าใดค่าหนึ่งต่อไปนี้ | ||
| card | 
 บัตรพื้นฐาน | |
| image | 
 รูปภาพ | |
| table | 
 การ์ดตาราง | |
| media | 
 การตอบกลับที่ระบุชุดสื่อที่จะเล่น | |
| canvas | 
 คำตอบที่จะนำไปใช้สำหรับประสบการณ์ Canvas แบบอินเทอร์แอกทีฟ | |
| collection | 
 การ์ดแสดงชุดตัวเลือกที่มีให้เลือก | |
| list | 
 การ์ดแสดงรายการตัวเลือกที่มีให้เลือก | |
การ์ด
การ์ดพื้นฐานสำหรับแสดงข้อมูลบางอย่าง เช่น รูปภาพและ/หรือข้อความ
| การแสดง JSON | |
|---|---|
| { "title": string, "subtitle": string, "text": string, "image": { object ( | |
| ช่อง | |
|---|---|
| title | 
 ชื่อโดยรวมของการ์ด ไม่บังคับ | 
| subtitle | 
 ไม่บังคับ | 
| text | 
 ข้อความเนื้อหาของการ์ด รองรับชุดไวยากรณ์มาร์กดาวน์สำหรับการจัดรูปแบบแบบจำกัด ต้องระบุ ยกเว้นกรณีที่มีรูปภาพอยู่ | 
| image | 
 รูปภาพหลักของการ์ด ความสูงกำหนดไว้ที่ 192dp ไม่บังคับ | 
| imageFill | 
 วิธีเติมพื้นหลังของรูปภาพ ไม่บังคับ | 
| button | 
 ปุ่ม ไม่บังคับ | 
รูปภาพ
รูปภาพที่แสดงในการ์ด
| การแสดง JSON | |
|---|---|
| { "url": string, "alt": string, "height": integer, "width": integer } | |
| ช่อง | |
|---|---|
| url | 
 URL แหล่งที่มาของรูปภาพ รูปภาพสามารถใช้เป็น JPG, PNG และ GIF (ทั้งเป็นภาพเคลื่อนไหวและไม่เคลื่อนไหว) ตัวอย่างเช่น | 
| alt | 
 ข้อความอธิบายรูปภาพที่ใช้สำหรับการเข้าถึง เช่น โปรแกรมอ่านหน้าจอ ต้องระบุ | 
| height | 
 ความสูงของรูปภาพเป็นพิกเซล ไม่บังคับ | 
| width | 
 ความกว้างของรูปภาพเป็นพิกเซล ไม่บังคับ | 
ImageFill
ตัวเลือกการแสดงรูปภาพที่เป็นไปได้ซึ่งจะส่งผลต่อการนำเสนอรูปภาพ ควรใช้เมื่อสัดส่วนภาพของรูปภาพไม่ตรงกับสัดส่วนภาพของคอนเทนเนอร์รูปภาพ
| Enum | |
|---|---|
| UNSPECIFIED | เติมรูปภาพที่ไม่ได้ระบุ | 
| GRAY | เติมช่องว่างระหว่างรูปภาพและคอนเทนเนอร์รูปภาพด้วยแถบสีเทา | 
| WHITE | เติมช่องว่างระหว่างรูปภาพและที่เก็บรูปภาพด้วยแถบสีขาว | 
| CROPPED | มีการปรับขนาดรูปภาพเพื่อให้ความกว้างและความสูงของรูปภาพตรงกับหรือเกินขนาดของคอนเทนเนอร์ การดำเนินการนี้อาจครอบตัดด้านบนและด้านล่างของรูปภาพหากความสูงของรูปภาพที่มีการปรับขนาดมากกว่าความสูงของคอนเทนเนอร์ หรือครอบตัดด้านซ้ายและขวาของรูปภาพหากความกว้างของรูปภาพที่มีการปรับขนาดมากกว่าความกว้างของคอนเทนเนอร์ ซึ่งคล้ายกับ "โหมดซูม" บนทีวีจอกว้าง เมื่อเล่นวิดีโอ 4:3 | 
ลิงก์
ลิงก์เนื้อหา
| การแสดง JSON | |
|---|---|
| {
  "name": string,
  "open": {
    object ( | |
| ช่อง | |
|---|---|
| name | 
 ชื่อของลิงก์ | 
| open | 
 สิ่งที่จะเกิดขึ้นเมื่อผู้ใช้เปิดลิงก์ | 
OpenUrl
การดำเนินการที่เกิดขึ้นเมื่อผู้ใช้เปิดลิงก์
| การแสดง JSON | |
|---|---|
| {
  "url": string,
  "hint": enum ( | |
| ช่อง | |
|---|---|
| url | 
 ฟิลด์ URL อาจเป็นรายการใดก็ได้ต่อไปนี้ - URL http/https สำหรับเปิดแอปที่ลิงก์กับแอปหรือหน้าเว็บ | 
| hint | 
 เป็นคำแนะนำสำหรับประเภท URL | 
UrlHint
คำแนะนำ URL ประเภทต่างๆ
| Enum | |
|---|---|
| LINK_UNSPECIFIED | ไม่ระบุ | 
| AMP | URL ที่ชี้ไปยังเนื้อหา AMP โดยตรง หรือไปยัง Canonical URL ซึ่งอ้างถึงเนื้อหา AMP ผ่าน | 
ตาราง
การ์ดตารางสำหรับแสดงตารางข้อความ
| การแสดง JSON | |
|---|---|
| { "title": string, "subtitle": string, "image": { object ( | |
| ช่อง | |
|---|---|
| title | 
 ชื่อโดยรวมของตาราง ไม่บังคับ แต่ต้องตั้งค่าหากมีการตั้งค่าคำบรรยาย | 
| subtitle | 
 ชื่อรองของตาราง ไม่บังคับ | 
| image | 
 รูปภาพที่เชื่อมโยงกับตาราง ไม่บังคับ | 
| columns[] | 
 ส่วนหัวและการจัดแนวคอลัมน์ | 
| rows[] | 
 ข้อมูลแถวของตาราง เรารับประกันว่าแถว 3 แถวแรกจะแสดงขึ้น แต่บางแถวอาจถูกตัดออกในบางแพลตฟอร์ม โปรดทดสอบกับเครื่องจำลองเพื่อดูว่าจะแสดงแถวใดสำหรับแพลตฟอร์มหนึ่งๆ ในแพลตฟอร์มที่รองรับความสามารถ WEB_BROWSER คุณสามารถชี้ผู้ใช้ไปยังหน้าเว็บที่มีข้อมูลเพิ่มเติมได้ | 
| button | 
 ปุ่ม | 
TableColumn
อธิบายคอลัมน์ในตาราง
| การแสดง JSON | |
|---|---|
| {
  "header": string,
  "align": enum ( | |
| ช่อง | |
|---|---|
| header | 
 ข้อความส่วนหัวของคอลัมน์ | 
| align | 
 การจัดแนวแนวนอนของเนื้อหาในคอลัมน์ หากไม่ระบุ เนื้อหาจะอยู่ในแนวเดียวกับขอบนำหน้า | 
HorizontalAlignment
การจัดแนวเนื้อหาภายในเซลล์
| Enum | |
|---|---|
| UNSPECIFIED | การจัดข้อความแนวนอนที่ไม่ระบุ | 
| LEADING | ขอบด้านการนำของเซลล์ โดยตัวเลือกนี้คือค่าเริ่มต้น | 
| CENTER | เนื้อหาจัดแนวกึ่งกลางคอลัมน์ | 
| TRAILING | เนื้อหาอยู่ในแนวเดียวกับขอบด้านท้ายของคอลัมน์ | 
TableRow
อธิบายแถวในตาราง
| การแสดง JSON | |
|---|---|
| {
  "cells": [
    {
      object ( | |
| ช่อง | |
|---|---|
| cells[] | 
 เซลล์ในแถวนี้ ระบบรับประกันว่าจะแสดง 3 เซลล์แรก แต่เซลล์อื่นๆ อาจถูกตัดออกในบางพื้นผิว โปรดทดสอบด้วยเครื่องมือจำลองเพื่อดูว่าจะแสดงเซลล์ใดบนพื้นผิวที่กำหนด | 
| divider | 
 ระบุว่าควรมีตัวแบ่งหลังจากแต่ละแถวหรือไม่ | 
TableCell
อธิบายเซลล์ในแถว
| การแสดง JSON | |
|---|---|
| { "text": string } | |
| ช่อง | |
|---|---|
| text | 
 เนื้อหาข้อความของเซลล์ | 
สื่อ
แสดงออบเจ็กต์สื่อ 1 รายการ มีข้อมูลเกี่ยวกับสื่อ เช่น ชื่อ, คำอธิบาย, URL ฯลฯ
| การแสดง JSON | |
|---|---|
| { "mediaType": enum ( | |
| ช่อง | |
|---|---|
| mediaType | 
 ประเภทสื่อ | 
| startOffset | 
 ออฟเซ็ตเริ่มต้นของออบเจ็กต์สื่อแรก ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก สิ้นสุดด้วย " | 
| optionalMediaControls[] | 
 ประเภทการควบคุมสื่อที่ไม่บังคับที่เซสชันการตอบสนองสื่อนี้รองรับได้ หากตั้งค่าไว้ จะมีการส่งคำขอไปยัง 3p เมื่อมีเหตุการณ์สื่อบางอย่างเกิดขึ้น หากไม่ได้ตั้งค่า 3p ยังคงต้องจัดการประเภทการควบคุมเริ่มต้น 2 ประเภท ได้แก่ FINISHED และ FAILED | 
| mediaObjects[] | 
 รายการออบเจ็กต์สื่อ | 
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 ( | |
| ช่อง | |
|---|---|
| name | 
 ชื่อออบเจ็กต์สื่อนี้ | 
| description | 
 คำอธิบายของออบเจ็กต์สื่อนี้ | 
| url | 
 URL ที่ชี้ไปยังเนื้อหาสื่อ | 
| image | 
 รูปภาพที่จะแสดงพร้อมการ์ดสื่อ | 
MediaImage
รูปภาพที่จะแสดงพร้อมการ์ดสื่อ
| การแสดง JSON | |
|---|---|
| { // Union field | |
| ช่อง | ||
|---|---|---|
| ช่องการรวม imageรูปภาพimageต้องเป็นค่าใดค่าหนึ่งต่อไปนี้ | ||
| large | 
 รูปภาพขนาดใหญ่ เช่น ปกอัลบั้ม ฯลฯ | |
| icon | 
 ไอคอนรูปภาพขนาดเล็กที่แสดงอยู่ด้านขวาจากชื่อ โดยปรับขนาดเป็น 36x36 dp | |
คอลเล็กชัน
การ์ดสำหรับนำเสนอชุดตัวเลือกให้เลือก
| การแสดง JSON | |
|---|---|
| { "title": string, "subtitle": string, "items": [ { object ( | |
| ช่อง | |
|---|---|
| title | 
 ชื่อคอลเล็กชัน ไม่บังคับ | 
| subtitle | 
 คำบรรยายของคอลเล็กชัน ไม่บังคับ | 
| items[] | 
 ต่ำสุด: 2 สูงสุด: 10 | 
| imageFill | 
 วิธีเติมพื้นหลังรูปภาพของรายการคอลเล็กชัน ไม่บังคับ | 
CollectionItem
รายการในคอลเล็กชัน
| การแสดง JSON | |
|---|---|
| { "key": string } | |
| ช่อง | |
|---|---|
| key | 
 ต้องระบุ คีย์ NLU ที่ตรงกับชื่อคีย์รายการในประเภทที่เชื่อมโยง | 
รายการ
การ์ดสำหรับแสดงรายการตัวเลือกที่มีให้เลือก
| การแสดง JSON | |
|---|---|
| {
  "title": string,
  "subtitle": string,
  "items": [
    {
      object ( | |
| ช่อง | |
|---|---|
| title | 
 ชื่อรายการ ไม่บังคับ | 
| subtitle | 
 คำบรรยายของรายการ ไม่บังคับ | 
| items[] | 
 ต่ำสุด: 2 สูงสุด: 30 | 
ListItem
รายการข้อมูลในรายการ
| การแสดง JSON | |
|---|---|
| { "key": string } | |
| ช่อง | |
|---|---|
| key | 
 ต้องระบุ คีย์ NLU ที่ตรงกับชื่อคีย์รายการในประเภทที่เชื่อมโยง | 
คำแนะนำ
ป้อนคำแนะนำที่จะแสดงต่อผู้ใช้
| การแสดง JSON | |
|---|---|
| { "title": string } | |
| ช่อง | |
|---|---|
| title | 
 ต้องระบุ ข้อความที่แสดงในชิปคำแนะนำ เมื่อแตะ ข้อความนี้จะโพสต์กลับไปที่การสนทนาแบบคำต่อคำราวกับว่าผู้ใช้ได้พิมพ์ลงไป ชื่อแต่ละรายการต้องไม่ซ้ำกันในชุดชิปคำแนะนำ สูงสุด 25 อักขระ | 
การวินิจฉัย
ข้อมูลการวินิจฉัยที่เกี่ยวข้องกับรอบการสนทนา
| การแสดง JSON | |
|---|---|
| {
  "actionsBuilderEvents": [
    {
      object ( | |
| ช่อง | |
|---|---|
| actionsBuilderEvents[] | 
 รายการเหตุการณ์พร้อมรายละเอียดเกี่ยวกับการประมวลผลรอบการสนทนาตลอดระยะต่างๆ ของโมเดลการโต้ตอบของ Actions Builder ป้อนข้อมูลสำหรับเครื่องมือสร้างการดำเนินการและ แอป Actions SDK เท่านั้น | 
ExecutionEvent
มีข้อมูลเกี่ยวกับเหตุการณ์ของการดำเนินการที่เกิดขึ้นระหว่างการประมวลผลคำขอสนทนาของ Actions Builder ดูภาพรวมของขั้นตอนต่างๆ ที่เกี่ยวข้องกับคำขอการสนทนาได้ที่ https://developers.google.com/assistant/conversational/actions
| การแสดง JSON | |
|---|---|
| { "eventTime": string, "executionState": { object ( | |
| ช่อง | ||
|---|---|---|
| eventTime | 
 การประทับเวลาเมื่อเหตุการณ์เกิดขึ้น การประทับเวลาเป็น RFC3339 UTC "Zulu" โดยมีความละเอียดระดับนาโนวินาทีและมีเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง:  | |
| executionState | 
 สถานะของการดำเนินการระหว่างเหตุการณ์นี้ | |
| status | 
 สถานะผลลัพธ์ของขั้นตอนการดำเนินการเฉพาะ | |
| warningMessages[] | 
 รายการคำเตือนที่สร้างขึ้นระหว่างการดำเนินการของเหตุการณ์นี้ คำเตือนคือเคล็ดลับสำหรับนักพัฒนาซอฟต์แวร์ที่ค้นพบระหว่างส่งคำขอการสนทนา การดำเนินการเหล่านี้มักจะไม่สำคัญและไม่หยุดการดำเนินการตามคำขอ เช่น ระบบอาจสร้างคําเตือนเมื่อเว็บฮุคพยายามลบล้างประเภทที่กําหนดเองซึ่งไม่มีอยู่ ระบบจะรายงานข้อผิดพลาดเป็นรหัสสถานะที่ล้มเหลว แต่ก็ยังอาจแสดงคำเตือนได้แม้ว่าจะมีสถานะปกติก็ตาม | |
| ช่องการรวม EventDataข้อมูลโดยละเอียดที่เฉพาะเจาะจงของเหตุการณ์ต่างๆ ที่อาจเกี่ยวข้องกับการประมวลผลรอบการสนทนา ฟิลด์ที่ตั้งไว้ที่นี่จะกำหนดประเภทของเหตุการณ์นี้EventDataต้องเป็นค่าใดค่าหนึ่งต่อไปนี้ | ||
| userInput | 
 เหตุการณ์การจัดการข้อมูลจากผู้ใช้ | |
| intentMatch | 
 เหตุการณ์การจับคู่ Intent | |
| conditionsEvaluated | 
 เหตุการณ์การประเมินเงื่อนไข | |
| onSceneEnter | 
 เหตุการณ์การดำเนินการ OnSceneEnter | |
| webhookRequest | 
 กิจกรรมการส่งคำขอเว็บฮุค | |
| webhookResponse | 
 เหตุการณ์ใบเสร็จการตอบกลับเว็บฮุค | |
| webhookInitiatedTransition | 
 เหตุการณ์การเปลี่ยนที่เริ่มต้นจากเว็บฮุค | |
| slotMatch | 
 เหตุการณ์การจับคู่สล็อต | |
| slotRequested | 
 เหตุการณ์คำขอสล็อต | |
| slotValidated | 
 เหตุการณ์การตรวจสอบสล็อต | |
| formFilled | 
 เหตุการณ์การกรอกแบบฟอร์ม | |
| waitingUserInput | 
 กำลังรอเหตุการณ์การป้อนข้อมูลจากผู้ใช้ | |
| endConversation | 
 กิจกรรมสิ้นสุดการสนทนา | |
ExecutionState
สถานะปัจจุบันของการดำเนินการ
| การแสดง JSON | |
|---|---|
| { "currentSceneId": string, "sessionStorage": { object }, "slots": { object ( | |
| ช่อง | |
|---|---|
| currentSceneId | 
 รหัสของฉากที่ทำงานอยู่ | 
| sessionStorage | 
 สถานะของพื้นที่เก็บข้อมูลเซสชัน: https://developers.google.com/assistant/conversational/storage-session | 
| slots | 
 สถานะของสล็อตที่เติม (หากมี): https://developers.google.com/assistant/conversational/scenes#slot_filling | 
| promptQueue[] | 
 คิวพรอมต์: https://developers.google.com/assistant/conversational/prompts | 
| userStorage | 
 สถานะพื้นที่เก็บข้อมูลของผู้ใช้: https://developers.google.com/assistant/conversational/storage-user | 
| householdStorage | 
 สถานะพื้นที่เก็บข้อมูลในบ้าน: https://developers.google.com/assistant/conversational/storage-home | 
สล็อต
แสดงสถานะปัจจุบันของสล็อตของฉาก
| การแสดง JSON | |
|---|---|
| { "status": enum ( | |
| ช่อง | |
|---|---|
| status | 
 สถานะปัจจุบันของการเติมช่อง | 
| slots | 
 สล็อตที่เชื่อมโยงกับฉากปัจจุบัน ออบเจ็กต์ที่มีรายการคู่  | 
SlotFillingStatus
แสดงสถานะปัจจุบันของการเติมช่องโฆษณา
| Enum | |
|---|---|
| UNSPECIFIED | ค่าสำรองเมื่อไม่ได้ใส่ข้อมูลในช่องการใช้งาน | 
| INITIALIZED | เริ่มต้นสล็อตแล้ว แต่การเติมช่องโฆษณายังไม่เริ่ม | 
| COLLECTING | กำลังรวบรวมค่าของช่องโฆษณา | 
| FINAL | ค่าของช่องทั้งหมดเป็นค่าสุดท้ายและเปลี่ยนแปลงไม่ได้ | 
สล็อต
แสดงช่องโฆษณา
| การแสดง JSON | |
|---|---|
| { "mode": enum ( | |
| ช่อง | |
|---|---|
| mode | 
 โหมดของช่อง (จำเป็นหรือไม่บังคับ) ตั้งค่าได้โดยนักพัฒนาซอฟต์แวร์ | 
| status | 
 สถานะของช่องโฆษณา | 
| value | 
 มูลค่าของช่อง การเปลี่ยนค่านี้ในคำตอบจะเป็นการแก้ไขค่าในการเติมช่องโฆษณา | 
| updated | 
 ระบุว่ามีการรวบรวมค่าช่องโฆษณาในการเลี้ยวล่าสุดหรือไม่ ช่องนี้เป็นแบบอ่านอย่างเดียว | 
| 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 | 
 รหัสสถานะ ซึ่งควรเป็นค่า enum ของ  | 
| message | 
 ข้อความแสดงข้อผิดพลาดที่นักพัฒนาแอปเห็น ซึ่งควรเป็นภาษาอังกฤษ ข้อความแสดงข้อผิดพลาดที่แสดงต่อผู้ใช้ควรแปลและส่งในช่อง  | 
| details[] | 
 รายการข้อความที่มีรายละเอียดข้อผิดพลาด API จะใช้ชุดประเภทข้อความที่พบได้ทั่วไป ออบเจ็กต์ที่มีช่องประเภทที่กำหนดเอง ช่องเพิ่มเติม  | 
UserConversationInput
ข้อมูลที่เกี่ยวข้องกับข้อมูลจากผู้ใช้
| การแสดง JSON | |
|---|---|
| { "type": string, "originalQuery": string } | |
| ช่อง | |
|---|---|
| type | 
 ประเภทข้อมูลจากผู้ใช้ เช่น แป้นพิมพ์ เสียง การแตะ ฯลฯ | 
| originalQuery | 
 การป้อนข้อความต้นฉบับจากผู้ใช้ | 
IntentMatch
ข้อมูลเกี่ยวกับการจับคู่ Intent ที่ทริกเกอร์ (ส่วนกลางหรือภายในฉาก): https://developers.google.com/assistant/conversational/intents
| การแสดง JSON | |
|---|---|
| {
  "intentId": string,
  "intentParameters": {
    string: {
      object ( | |
| ช่อง | |
|---|---|
| intentId | 
 รหัส Intent ที่เรียกใช้การโต้ตอบนี้ | 
| intentParameters | 
 พารามิเตอร์ของ Intent ที่ทริกเกอร์การโต้ตอบนี้ ออบเจ็กต์ที่มีรายการคู่  | 
| handler | 
 ชื่อของเครื่องจัดการที่แนบกับการโต้ตอบนี้ | 
| nextSceneId | 
 ฉากที่การโต้ตอบนี้จะนำไป | 
ConditionsEvaluated
ผลการประเมินเงื่อนไข: https://developers.google.com/assistant/conversational/scenes#conditions
| การแสดง JSON | |
|---|---|
| { "failedConditions": [ { object ( | |
| ช่อง | |
|---|---|
| failedConditions[] | 
 รายการเงื่อนไขที่ประเมินเป็น "เท็จ" | 
| successCondition | 
 เงื่อนไขแรกที่ได้รับการประเมินเป็น "จริง" หากมี | 
เงื่อนไข
เงื่อนไขที่ประเมินแล้ว
| การแสดง JSON | |
|---|---|
| { "expression": string, "handler": string, "nextSceneId": string } | |
| ช่อง | |
|---|---|
| expression | 
 นิพจน์ที่ระบุในเงื่อนไขนี้ | 
| handler | 
 ชื่อเครื่องจัดการที่ระบุในเงื่อนไขที่ประเมิน | 
| nextSceneId | 
 ฉากปลายทางที่ระบุในเงื่อนไขที่ประเมินแล้ว | 
OnSceneEnter
ข้อมูลเกี่ยวกับการดำเนินการของระยะ onSceneEnter: https://developers.google.com/assistant/conversational/scenes#onEnter
| การแสดง JSON | |
|---|---|
| { "handler": string } | |
| ช่อง | |
|---|---|
| handler | 
 ชื่อเครื่องจัดการที่ระบุในเหตุการณ์ onSceneEnter | 
WebhookRequest
ข้อมูลเกี่ยวกับคำขอที่ส่งไปยังเว็บฮุคของการดำเนินการ: https://developers.google.com/assistant/conversational/webhooks#payloads
| การแสดง JSON | |
|---|---|
| { "requestJson": string } | |
| ช่อง | |
|---|---|
| requestJson | 
 เพย์โหลดของคำขอเว็บฮุค | 
WebhookResponse
ข้อมูลเกี่ยวกับการตอบกลับที่ได้รับจากเว็บฮุคของการดำเนินการ: https://developers.google.com/assistant/conversational/webhooks#payloads
| การแสดง JSON | |
|---|---|
| { "responseJson": string } | |
| ช่อง | |
|---|---|
| responseJson | 
 เพย์โหลดของการตอบสนองของเว็บฮุค | 
WebhookInitiatedTransition
เหตุการณ์ที่ทริกเกอร์โดยโหมดปลายทางที่แสดงผลจากเว็บฮุค: https://developers.google.com/assistant/conversational/webhooks#transition_scenes
| การแสดง JSON | |
|---|---|
| { "nextSceneId": string } | |
| ช่อง | |
|---|---|
| nextSceneId | 
 รหัสของฉากที่เกิดการเปลี่ยน | 
SlotMatch
ข้อมูลเกี่ยวกับช่องที่ตรงกัน: https://developers.google.com/assistant/conversational/scenes#slot_filling
| การแสดง JSON | |
|---|---|
| {
  "nluParameters": {
    string: {
      object ( | |
| ช่อง | |
|---|---|
| nluParameters | 
 พารามิเตอร์ที่ NLU ดึงมาจากข้อมูลของผู้ใช้ ออบเจ็กต์ที่มีรายการคู่  | 
SlotRequested
ข้อมูลเกี่ยวกับสล็อตที่ขอในปัจจุบัน: https://developers.google.com/assistant/conversational/scenes#slot_filling
| การแสดง JSON | |
|---|---|
| {
  "slot": string,
  "prompt": {
    object ( | |
| ช่อง | |
|---|---|
| slot | 
 ชื่อของสล็อตที่ขอ | 
| 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
กิจกรรมที่แจ้งว่าการสนทนากับตัวแทนสิ้นสุดแล้ว
