การดำเนินการคือจุดแรกเข้าของแอปซึ่งเป็นตัวกำหนดการเรียกใช้และการค้นพบ สำหรับแอปของคุณ คุณประกาศการดำเนินการในไฟล์ JSON ที่เรียกว่าแพ็กเกจการดำเนินการ ซึ่งคุณจะอัปโหลดไปยังโปรเจ็กต์นักพัฒนาซอฟต์แวร์ในภายหลังเมื่อต้องการทดสอบ หรือ ส่งโปรเจ็กต์ Actions เพื่อรับการอนุมัติ แพ็กเกจการดำเนินการคือไฟล์ JSON ที่ กำหนด Actions ในโปรเจ็กต์ Actions
หากต้องการกำหนด Actions ในแพ็กเกจ Action คุณต้องสร้าง Intent ที่กำหนดวิธีการ จะมีการเรียกใช้การดำเนินการและปลายทางการดำเนินการตามคำสั่งซื้อที่เกี่ยวข้องเมื่อ Intent เกิดขึ้น คุณสร้างการดำเนินการประเภทต่อไปนี้ได้
- การดำเนินการเริ่มต้น: ทุกโปรเจ็กต์ของ Actions ต้องมีความตั้งใจในการต้อนรับซึ่งทำหน้าที่
เป็นจุดเริ่มต้นสำหรับให้ผู้ใช้เริ่มต้นการสนทนา จุดประสงค์ในการต้อนรับคือ
ถูกเรียกเมื่อผู้ใช้เรียกใช้การดำเนินการอย่างชัดแจ้งโดยพูดชื่อการดำเนินการ (สำหรับ
เช่น "Ok Google คุยกับ ExampleAction") จุดประสงค์ในการต้อนรับนี้คือ
ชื่อ Intent
actions.intent.MAIN - การดำเนินการเพิ่มเติมสำหรับการลิงก์ในรายละเอียด: คุณสามารถสร้างการดำเนินการเพิ่มเติมใน แพ็กเกจการดำเนินการที่มี Intent ที่คุณกำหนดด้วยตนเอง วิธีนี้ช่วยให้ผู้ใช้ เพื่อเรียกใช้ฟังก์ชันเฉพาะโดยพูดชื่อการดำเนินการพร้อมกับ Intent (เช่น "Ok Google ขอคุยกับ ExampleAction เพื่อหารองเท้าหน่อย")
ดูความตั้งใจและการเรียกใช้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธี โมเดลการเรียกใช้เหล่านี้ใช้งานได้
กำหนดการกระทำเริ่มต้น
แพ็กเกจการดำเนินการทุกแพ็กเกจต้องมี Intent เพียงรายการเดียวที่จัดการ
Intent actions.intent.MAIN ระบบจะเรียกใช้ Intent นี้เมื่อผู้ใช้เรียกใช้
การดำเนินการตามชื่อ (เช่น "Ok Google พูดกับ ExampleAction")
หากต้องการสร้างไฟล์แพ็กเกจการดำเนินการแบบ Boilerplate ที่ชื่อ action.json ให้ใช้
ขั้นตอนต่อไปนี้
- ดาวน์โหลด
gactionsCLI - สร้างไดเรกทอรีในเครื่องสำหรับไฟล์ต้นทางของโปรเจ็กต์การดำเนินการ
เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล
$ cd PROJECT_DIRECTORY $ gactions init
เมื่อสร้างไฟล์แพ็กเกจการดำเนินการแล้ว ให้แทนที่เนื้อหาของตัวยึดตำแหน่งด้วย
ต่อไปนี้คือตัวอย่างของ action.json ที่มีการเปลี่ยนแปลงสำหรับ ExampleAction
{
"actions": [
{
"description": "Default welcome intent",
"name": "MAIN",
"fulfillment": {
"conversationName": "ExampleAction"
},
"intent": {
"name": "actions.intent.MAIN",
"trigger": {
"queryPatterns": [
"talk to ExampleAction"
]
}
}
}
],
"conversations": {
"ExampleAction": {
"name": "ExampleAction",
"url": "https://www.example.com/ExampleAction"
}
},
"locale": "en"
}กำหนดการกระทำเพิ่มเติม
คุณสามารถใส่การดำเนินการเพิ่มเติมที่ทำหน้าที่เป็นจุดแรกเข้าได้ ซึ่งทำให้ผู้ใช้ ชี้แจงความตั้งใจของพวกเขาโดยให้พวกเขาสามารถระบุรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่พวกเขา ต้องการทำ (เช่น "Ok Google ขอคุยกับ ExampleAction เพื่อหา ")
วิธีกำหนดการดำเนินการเพิ่มเติม
-
ในอาร์เรย์
ตัวอย่างเช่น โค้ดต่อไปนี้แสดงแท็ก "ซื้อ" เพิ่มเติม การดำเนินการที่กำหนดสิ่งต่อไปนี้actionsให้ระบุการดำเนินการสำหรับจุดแรกเข้าทุกจุด- ชื่อ Intent ของ
com.example.ExampleAction.BUY parametersเพื่อแยกวิเคราะห์จากข้อมูลที่ผู้ใช้ป้อนเมื่อมีการเรียกให้แสดง Intent นี้ วิธีนี้มีประโยชน์หากคุณต้องการข้อมูลเฉพาะจากวลีการดำเนินการเมื่อ ผู้ใช้เรียกใช้การดำเนินการqueryPatternsที่กำหนดสิ่งที่ผู้ใช้ต้องพูดเพื่อกระตุ้นความตั้งใจ รูปแบบคำค้นหารวมถึงประเภท Schema.org ได้ ที่กำหนดพารามิเตอร์เพื่อแยกวิเคราะห์
{ "description": "Direct access", "name": "BUY", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "com.example.ExampleAction.BUY", "parameters": [ { "name": "color", "type": "org.schema.type.Color" } ], "trigger": { "queryPatterns": [ "find some $org.schema.type.Color:color sneakers", "buy some blue suede shoes", "get running shoes" ] } } }
- ชื่อ Intent ของ
-
ระบุ Fulfillment สำหรับ Intent นี้โดยการระบุ
conversationNameที่ตรงกับรายการในออบเจ็กต์conversations{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
ต่อไปนี้คือตัวอย่างแพ็กเกจการดำเนินการแบบเต็ม
{ "actions": [ { "description": "Default welcome intent", "name": "MAIN", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "actions.intent.MAIN", "trigger": { "queryPatterns": [ "talk to ExampleAction" ] } } }, { "description": "Direct access", "name": "BUY", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "com.example.ExampleAction.BUY", "parameters": [ { "name": "color", "type": "org.schema.type.Color" } ], "trigger": { "queryPatterns": [ "find some $org.schema.type.Color:color sneakers", "buy some blue suede shoes", "get running shoes" ] } } } ], "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } }, "locale": "en" }