Невозможно получить приблизительное местоположение устройства при тестировании на устройстве Google Mini. - PullRequest
0 голосов
/ 25 октября 2018

Привет! У меня возникла проблема, связанная с тем, что я не могу определить приблизительное местоположение устройства при тестировании на устройстве Google Mini с той же учетной записью диалогового потока. Я могу получить имя пользователя, но не местоположение устройства.Я разочарован этой проблемой. Пожалуйста, помогите решить эту проблему.

Вот мой код,

const express = require('express');
const bodyParser = require('body-parser');
const {dialogflow,Permission} = require('actions-on-google');
const app = dialogflow({
   clientId : 'xyz'
}); 
app.intent('Default Welcome Intent', conv => {
  const options = {
    context: 'To locate you',
    permissions: ['NAME','DEVICE_COARSE_LOCATION'],
  };
  conv.ask(new Permission(options));
});

app.intent('User_info',(conv, params, permissionGranted) => {
console.log(conv);
var location=conv.device.location;
console.log(location);
if(permissionGranted){
    const name = conv.user.name;
    console.log(name);
    var resp="you are located at"+conv.device.location.city;
    conv.ask(resp);
}else{
conv.close("sorry I'm unable to locate you right now. Okay bye now");
}
});

const expressApp=express().use(bodyParser.json())
expressApp.post('/',app);

expressApp.listen(3000);

1 Ответ

0 голосов
/ 14 декабря 2018

Я только что протестировал разрешение DEVICE_COARSE_LOCATION и обнаружил пустой объект в моих журналах Firebase, где я ожидал увидеть местоположение.

Вы пытались использовать вместо этого DEVICE_PRECISE_LOCATION?Вот пример того, как это работает:

// Handle the Dialogflow intent named 'Default Welcome Intent'.

app.intent('Default Welcome Intent', (conv) => {
  conv.ask(new Permission({
    context: 'Hi there, to get to know you better',
    permissions: ['NAME', 'DEVICE_PRECISE_LOCATION']
  }));
});

// Handle the Dialogflow intent named 'actions_intent_PERMISSION'. If user
// agreed to PERMISSION prompt, then boolean value 'permissionGranted' is true.

app.intent('actions_intent_PERMISSION', (conv, params, permissionGranted) => {
  if (!permissionGranted) {
    conv.ask(`Ok, no worries. What's your favorite color?`);
    conv.ask(new Suggestions('Blue', 'Red', 'Green'));
  } else {
    console.log(conv);
    conv.data.userName = conv.user.name.given;
    conv.data.userLatitude = conv.device.location.coordinates.latitude;
    conv.data.userLongitude = conv.device.location.coordinates.longitude;
    conv.ask(`Thanks, ${conv.data.userName} at latitude ${conv.data.userLatitude} and longitude ${conv.data.userLongitude}. What's your favorite color?`);
  }
});
...