Tìm vị trí thiết bị trong Kỹ năng Alexa và Hành động tại nhà của Google


Tạ Hoàng Hiệp
1 năm trước
Hữu ích 6 Chia sẻ Viết bình luận 0
Đã xem 3228

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu cách sử dụng vị trí thiết bị trong Kỹ năng Alexa, hành động Google Home hoặc bot Facebook Messenger và sử dụng nó để định vị nhà hàng gần nhất bằng API Yelp Fusion .

Nếu bạn làm theo các bước như đã vạch ra, bạn sẽ có một ứng dụng Tìm kiếm Resturants Rest đang hoạt động, đang hoạt động.

Tạo một tài khoản Yelp Fusion

API Yelp Fusion cho phép bạn có được nội dung địa phương và đánh giá người dùng tốt nhất từ ​​hàng triệu doanh nghiệp trên 32 quốc gia.

  1. Nếu bạn chưa có tài khoản nhà phát triển Yelp, hãy đăng ký. Nếu bạn có một tài khoản, đăng nhập.
  2. Tạo một ứng dụng mới tại https://www.yelp.com/developers/v3/manage_app. Lưu khóa API API, chúng tôi sẽ cần nó sau này.

Tạo một ứng dụng đàm thoại

Ứng dụng Convers.one thể hiện giao diện trò chuyện của bạn thông qua Amazon Alexa, Google Home hoặc Facebook Messenger bot. Để tạo một ứng dụng:

  1. Nếu bạn chưa có tài khoản Convers.one, hãy đăng ký . Nếu bạn có một tài khoản, đăng nhập .
  2. Nhấp vào Tạo ứng dụng mới trong điều hướng. Nếu đó là ứng dụng đầu tiên của bạn, bạn sẽ tự động được chuyển hướng đến trình hướng dẫn Tạo ứng dụng mới.
  3. Chọn ngành của bạn và nhập tên công ty của bạn. Với mục đích của hướng dẫn này, hãy chọn loại Other Other cho ngành công nghiệp và nhập vào Tìm Tìm Nhà hàng tên là tên công ty của bạn. Nhấn Next để tiếp tục.
  4. Chọn các thiết bị bạn muốn hỗ trợ với ứng dụng của bạn. Đối với bản demo này, chọn Messenger, Amazon Alexa, Google Home và Chatbot. Nhấn Next để tiếp tục.
  5. Khi được hỏi, người dùng sẽ hỏi bot của bạn là gì? Hãy nhập vào Tìm nhà hàng và nhấp vào Tiếp theo để tiếp tục.
  6. Chọn Phản hồi mã và nhập mã:
var apiKey = "YourYelpAPIKey";
const yelp = require('yelp-fusion');
const client = yelp.client(apiKey);

return sdk.GetDeviceAddress(context, req, res).then(function(address) {
    var searchOptions = {
        term: 'restaurant'
    }
    if (address.long != "" && address.lat != "") {
        searchOptions.longitude = address.long;
        searchOptions.latitude = address.lat;
    } else if (address.FullAddress != "") {
        searchOptions.location = address.FullAddress;
    } else if (address.Street != "" && address.City != "") {
        searchOptions.location = address.Street + "," + address.City;
    } else {
        res.say("Soory, I could not locate your address. Repeat your question using a full address.");
        return;
    }
    return client.search(searchOptions).then(response => {
        var text = "I found " + response.jsonBody.businesses[0].name + ", located at ";
        text += response.jsonBody.businesses[0].location.address1 + "," + response.jsonBody.businesses[0].location.city + ".";
        res.say(text);
        var text = response.jsonBody.businesses[0].location.address1 + "," + response.jsonBody.businesses[0].location.city + ".";
        text += "
";
        text += "Phone: " + response.jsonBody.businesses[0].phone;
        res.card({
            type: "Standard",
            title: response.jsonBody.businesses[0].name,
            text: text,
            image: {
                smallImageUrl: response.jsonBody.businesses[0].image_url,
                largeImageUrl: response.jsonBody.businesses[0].image_url,
            }
        });
    });
}).catch(e => {
    console.log(e);
});

Đoạn mã trên đang chạy các bước sau:

  1. Tìm địa chỉ người dùng bằng cách sử dụng chức năng GetDeviceAddress.

  2. Sử dụng tùy chọn tốt nhất cho tìm kiếm vị trí - GPS (log / lat), địa chỉ đầy đủ hoặc đường phố và thành phố.

  3. Gọi API Yelp Fusion bằng ứng dụng khách yelp-fusion

  4. Trả về kết quả cả dưới dạng văn bản và dưới dạng thẻ.

Ứng dụng mới của bạn đã sẵn sàng. Nhấp vào Tùy chỉnh để hoàn thành ứng dụng của bạn.

Thêm thực thể

Các thực thể là các công cụ mạnh được sử dụng để trích xuất các giá trị tham số từ các đầu vào ngôn ngữ tự nhiên. Chúng tôi sẽ sử dụng các thực thể trong hướng dẫn này để cho phép người dùng cung cấp một địa chỉ cụ thể, thay vì địa chỉ được định cấu hình của thiết bị.

  1. Mở ý định FindR Restaurant.
  2. Thêm một thực thể mới có tên là Địa chỉ địa chỉ trực tuyến với loại Địa chỉ.

Thêm nhiều mẫu

  1. Thay thế mẫu Người dùng hiện tại của Sais bằng mẫu (trong đó là | cái gì | cái gì) (gần nhất | gần nhất | cao nhất) (nhà hàng) (| đến {Địa chỉ})
  2. Nhấp vào để lưu

Dùng thử

Bây giờ ứng dụng của bạn có thể trả lại nhà hàng gần nhất cho người dùng, hãy thử những gì bạn có cho đến nay.

Trong bảng điều khiển trò chuyện bên phải, nhập yêu cầu. Yêu cầu có thể khác một chút so với các ví dụ bạn đã cung cấp trong phần Nói người dùng. Đây có thể là một cái gì đó giống như ở đâu là nhà hàng gần nhất. Sau khi bạn nhập yêu cầu, hãy nhấn vào Send Send.

Chatbot sẽ trả lời với các chi tiết của nhà hàng gần nhất. Ví dụ, tôi tìm thấy DishDash, tọa lạc tại 190 S Murphy Ave, Sunnyvale.

Hãy thử ngay bây giờ với một địa chỉ cụ thể. Ví dụ: ở đâu là nhà hàng gần nhất với 1 Market St, San Francisco? Các chatbot sẽ trả lời với các chi tiết của nhà hàng gần nhất. Ví dụ, tôi tìm thấy Hog Island Oyster Co, tọa lạc tại số 1 phà Bldg, San Francisco.

Cái gì tiếp theo?

Bạn có thể sử dụng thuật sĩ triển khai Amazon Alexa và Google Home để triển khai ứng dụng mới của mình trên các nền tảng khác nhau.

Hữu ích 6 Chia sẻ Viết bình luận 0
Đã xem 3228