Hành động là các điểm truy cập vào ứng dụng, giúp xác định lời mời và khám phá cho ứng dụng của mình. Bạn khai báo Hành động trong tệp JSON được gọi là Gói hành động, mà sau này bạn tải lên dự án dành cho nhà phát triển khi bạn muốn thử nghiệm hoặc gửi dự án Actions để phê duyệt. Gói Hành động là một tệp JSON xác định các Actions trong dự án Actions của bạn.
Để xác định Hành động trong gói Hành động, bạn cần tạo một ý định xác định cách Hành động được gọi và điểm cuối thực hiện tương ứng khi ý định được kích hoạt. Bạn có thể tạo các loại Thao tác sau:
- Hành động mặc định: Mọi dự án Hành động phải có ý định chào mừng hành động
làm điểm truy cập để người dùng bắt đầu cuộc trò chuyện. Mục đích chào mừng là
được kích hoạt khi người dùng gọi ra một Hành động một cách rõ ràng bằng cách nói tên hành động đó (cho
ví dụ: "Ok Google, hãy nói chuyện với ExampleAction"). Ý định chào mừng này được xác định bằng
tên ý định
actions.intent.MAIN
. - Hành động bổ sung cho đường liên kết sâu: Bạn có thể tạo thêm Hành động trong gói Hành động của bạn với ý định mà bạn tự xác định. Điều này cho phép người dùng để gọi chức năng cụ thể bằng cách nói tên Hành động cùng với ý định (ví dụ: "Ok Google, hãy nói chuyện với ExampleAction để tìm một số đôi giày").
Vui lòng xem bài viết Ý định và lệnh gọi để biết thêm thông tin về cách các mô hình gọi này hoạt động.
Xác định Hành động mặc định
Mỗi gói Hành động phải có một và chỉ một ý định xử lý
Ý định actions.intent.MAIN
. Ý định này được kích hoạt khi người dùng gọi
Hành động theo tên (ví dụ: "Ok Google, hãy nói chuyện với ExampleAction").
Để tạo tệp gói Hành động nguyên mẫu có tên action.json
, hãy lấy phương thức
các bước sau:
- Tải
gactions
CLI xuống. - Tạo một thư mục cục bộ cho các tệp nguồn của dự án Hành động.
Chạy các lệnh sau trong thiết bị đầu cuối:
$ cd PROJECT_DIRECTORY $ gactions init
Sau khi tạo tệp Gói hành động, hãy thay thế nội dung phần giữ chỗ bằng
giá trị. Dưới đây là ví dụ về action.json
với các thay đổi cho 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" }
Xác định các Hành động khác
Bạn có thể cung cấp các Hành động khác đóng vai trò là điểm truy cập. Nhờ đó, người dùng phân biệt rõ ý định của họ bằng cách cho phép họ chỉ rõ thêm chi tiết về những gì họ muốn thực hiện (ví dụ: "Ok Google, hãy nói với ExampleAction để tìm cho tôi một số giày.").
Cách xác định các Thao tác khác:
-
Trong mảng
Ví dụ: mã sau đây hiển thị thêm một nút "mua" Hành động xác định:actions
, hãy chỉ định một Hành động cho mọi điểm truy cập.- Tên ý định của
com.example.ExampleAction.BUY
parameters
để phân tích cú pháp từ hoạt động đầu vào của người dùng khi ý định này được kích hoạt. Điều này sẽ hữu ích nếu bạn cần dữ liệu cụ thể từ cụm từ Hành động khi người dùng gọi Hành động.queryPatterns
xác định những gì người dùng cần nói để kích hoạt ý định. Mẫu truy vấn có thể bao gồm các loại Schema.org xác định các tham số cần phân tích cú pháp.
{ "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" ] } } }
- Tên ý định của
-
Chỉ định phương thức thực hiện ý định này bằng cách chỉ định
conversationName
tương ứng với một mục trong đối tượngconversations
.{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
Dưới đây là ví dụ về một gói Hành động đầy đủ:
{ "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" }