Могу ли я узнать местное время (или смещение) отправителя запроса в Actions On Google?

Я строю на Actions On Google API, используя API.ai. Чтобы выполнить одно из моих действий, мне нужно знать местонахождение пользователя и местное время.

Мне удалось успешно запросить и получить обратно местоположение пользователя.

Однако я не вижу никакого способа получить смещение местного времени или часового пояса пользователя. Есть ли способ сделать это?

(Я понимаю, что могу использовать местоположение, чтобы узнать смещение, но для этого потребуется другой вызов API или использование другой библиотеки, чего я бы предпочел избежать.)

Заранее спасибо.

- Обновление -

Согласно ответу Леона ниже и по состоянию на 18 января 2017 года эта информация в настоящее время не предоставляется API. Чтобы получить необходимую информацию, я запросил разрешение на точное местоположение пользователя, которое возвращает широту и долготу. Затем я использовал GeoNames API часового пояса, чтобы получить смещение часового пояса.


person strttn    schedule 18.01.2017    source источник
comment
Можно ли было бы использовать @sys.date-time в качестве объекта в запросе?   -  person Tim Büthe    schedule 09.02.2017
comment
Ммм, это может быть вариант для его получения, но, насколько я понимаю, пользователя сначала нужно побудить указать дату и время, которые будут совпадать с сущностью. Не думаю, что без этого слот сущности был бы заполнен ... Разве вы не знаете иначе?   -  person strttn    schedule 09.02.2017


Ответы (2)


Часовой пояс устройства еще не указан в действии.

person Leon Nicholls    schedule 18.01.2017
comment
Спасибо за ответ, Леон. Мне кажется, что это была бы полезная и не особо нарушающая конфиденциальность информация, которую нужно предоставить, поэтому, надеюсь, она скоро будет предоставлена, и я смогу добавить сюда дополнение. А пока, думаю, это и есть ответ :) - person strttn; 18.01.2017

Хотя, насколько мне известно, часовой пояс изначально не включен. Вы можете использовать разрешение на местоположение вместе с библиотеками, чтобы динамически получать местное время.

Библиотеки, которые я здесь использовал, - это momentTz и часовой пояс. Последний получает часовой пояс, интерполированный из широты / долготы, предоставленной разрешением местоположения. Затем разрешенный часовой пояс используется для преобразования стандартного времени в формате UTC, которое momentTz обеспечивает изначально для искомого местного времени.

const startTz = momentTz(); //Returns standard UTC time, independent of locality
const timestamp = 1402629305; // Any random timestamp will work, it wouldn't unnecessarily impede your results 

timezone.data(latitudeValue, longitudeValue, timestamp, function(err, tz) {
  if (err) {
    console.log(err);
  }

var zoneHolder = tz.raw_response.timeZoneId; //Appropriate timezone is returned here based on latitudeValue and longitudeValue passed
const localTime = startTz.tz(zoneHolder).format('LLL'); //local time which you seek;
});
person Ade    schedule 02.04.2018
comment
Спасибо за ответ. Похоже на то, чем я закончил, за исключением того, что я выполняю интерполяцию тимзона через API Geonames. Выполняет ли указанная вами библиотека часовых поясов интерполяцию в автономном режиме? Или для этого также требуется вызов стороннего API? Не могли бы вы добавить ссылку на библиотеку часовых поясов из быстрого поиска Google, я не уверен, какой вы используете. - person strttn; 03.04.2018
comment
Пожалуйста. Я не уверен, что интерполяция отключена ... Однако в моем случае я выполняю другие запросы одновременно, когда использую вызов, поэтому может быть трудно точно сказать. См. Ссылку здесь: (npmjs.com/package/node-google-timezone) - person Ade; 04.04.2018