首页 > 解决方案 > 在 dialogflow webhook 请求中获取设备位置为空

问题描述

嗨,我正在尝试通过询问权限来获取用户的设备位置。它适用于模拟器,但是当我使用 google mini 设备进行测试时,webhook 请求中的设备位置未定义。下面是代码

const {Permission} = require('actions-on-google');
const {WebhookClient} = require('dialogflow-fulfillment');
const agent = new WebhookClient({ request: req, response: res });
conv.ask(new Permission({context:'To Locate You',permissions:'DEVICE_COARSE_LOCATION'}));
function userinfo(agent){
        var conv=agent.conv();
        var resp=conv.arguments.get('PERMISSION');
    console.log(conv.device.location);
    if(resp){

                var country=conv.device.location.country;
                var speech="you are located in "+country;
                conv.ask(speech);
                agent.add(conv);
        }else{
            conv.ask('Sorry, I could not figure out where you are');
            agent.add(conv);
    }
}

标签: dialogflow-esactions-on-google

解决方案


您不能混合使用dialogflow-fulfillmentactions-on-google库。数据类型不一定是兼容的。如果您需要特定于 Actions on Google 的功能,则应actions-on-google完全使用。如果您需要 Dialogflow 支持的各种平台之间的兼容性,请使用dialogflow-fulfillment.


推荐阅读