Action adalah titik entri ke aplikasi Anda yang menentukan model pemanggilan dan penemuan untuk aplikasi Anda. Anda mendeklarasikan Action dalam file JSON yang dikenal sebagai paket Action, yang nantinya Anda upload ke project developer saat ingin menguji atau mengirimkan project Action untuk disetujui. Paket Action adalah file JSON yang menentukan Action dalam project Action Anda.
Untuk menentukan Action dalam paket Action, Anda membuat intent yang menentukan cara Action dipanggil dan endpoint fulfillment yang sesuai saat intent dipicu. Anda dapat membuat jenis Tindakan berikut:
- Tindakan Default: Setiap project Action harus memiliki intent sambutan yang berfungsi
sebagai titik entri bagi pengguna untuk memulai percakapan. Intent sambutan
dipicu saat pengguna memanggil Action secara eksplisit dengan mengucapkan namanya (misalnya, "Ok Google, bicara dengan ExampleAction"). Intent sambutan ini diidentifikasi dengan
nama intent
actions.intent.MAIN
. - Tindakan Tambahan untuk deep linking: Anda dapat membuat Tindakan tambahan dalam paket Action dengan intent yang Anda tentukan sendiri. Hal ini memungkinkan pengguna memanggil fungsi tertentu dengan mengucapkan nama Action bersama dengan intent (misalnya: "Ok Google, bicara dengan ExampleAction untuk menemukan sepatu").
Lihat Intent dan pemanggilan untuk mengetahui informasi selengkapnya tentang cara kerja model pemanggilan ini.
Menentukan Tindakan default
Setiap paket Action harus memiliki satu dan hanya satu intent yang menangani
intent actions.intent.MAIN
. Intent ini dipicu saat pengguna memanggil
Action Anda dengan nama (misalnya, "Ok Google, bicara dengan ExampleAction").
Untuk membuat file paket Action boilerplate bernama action.json
, lakukan
langkah-langkah berikut:
- Download
gactions
CLI. - Buat direktori lokal untuk file sumber project Action Anda.
Jalankan perintah berikut di terminal:
$ cd PROJECT_DIRECTORY $ gactions init
Setelah file paket Action dibuat, ganti konten placeholder dengan
nilai Anda. Berikut ini contoh action.json
dengan perubahan untuk 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" }
Menentukan Tindakan tambahan
Anda dapat memberikan Action tambahan yang berfungsi sebagai titik entri. Hal ini memungkinkan pengguna membedakan intent mereka dengan mengizinkan mereka menentukan detail selengkapnya tentang apa yang ingin mereka lakukan (misalnya, "Ok Google, bicara dengan ExampleAction untuk mencarikan saya sepatu".).
Untuk menentukan Tindakan tambahan:
-
Dalam array
Misalnya, kode berikut menampilkan Action "buy" tambahan yang menentukan:actions
, tentukan Action untuk setiap titik entri.- Nama intent
com.example.ExampleAction.BUY
parameters
untuk diurai dari input pengguna saat intent ini dipicu. Hal ini berguna jika Anda memerlukan data spesifik dari frasa Action saat pengguna memanggil Action.queryPatterns
yang menentukan hal yang perlu dikatakan pengguna untuk memicu intent. Pola kueri dapat menyertakan jenis Schema.org yang menentukan parameter yang akan diurai.
{ "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" ] } } }
- Nama intent
-
Tentukan fulfillment untuk intent ini dengan menentukan
conversationName
yang sesuai dengan item dalam objekconversations
.{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
Berikut adalah contoh paket Action lengkap:
{ "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" }