Как узнать часовой пояс или местное время устройства Alexa - PullRequest
0 голосов
/ 06 июня 2018

Я хочу получить "часовой пояс", установленный в настройках или местном времени даты устройства Alexa.Есть ли API для этого?Или есть ли возможность получить дату и время пользователя, используя его почтовый индекс?

Любая помощь будет весьма заметна?

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Теперь можно получить часовой пояс пользователя и другие связанные данные, используя Alexa Settings API .Также см. Соответствующий blogpost для получения дополнительной информации об этой версии API.

Конечная точка, которая вас заинтересует, следующая:

GET /v2/devices/{deviceId}/settings/System.timeZone

Вам просто нужнопредоставить идентификатор устройства пользователя, который является частью полученного намерения.Ответ будет содержать название часового пояса, например «Европа / Лондон».

0 голосов
/ 06 августа 2018

Да, есть встроенный Alexa API, который вы можете использовать.Вот идеальное решение для того, что вы ищете.Вам понадобится идентификатор устройства и токен доступа API.Кроме того, несколько инструментов, таких как axios (npm i axios) и почтовый индекс к стране (npm i почтовый индекс к часовому поясу), дополнительная информация здесь Повышение квалификации с помощьюИнформация об адресе Кроме того, прежде чем применять этот код, обязательно перейдите на портал Alexa Dev и включите права доступа. См. Изображение ниже.Ура!enter image description here

            const apiAccessToken = this.event.context.System.apiAccessToken;
            const deviceId = this.event.context.System.device.deviceId;
            let countryCode = '';
            let postalCode = '';

            axios.get(`https://api.amazonalexa.com/v1/devices/${deviceId}/settings/address/countryAndPostalCode`, {
              headers: { 'Authorization': `Bearer ${apiAccessToken}` }
            })
            .then((response) => {
                countryCode = response.data.countryCode;
                postalCode = response.data.postalCode;
                const tz = ziptz.lookup( postalCode );
                const currDate = new moment();
                const userDatetime = currDate.tz(tz).format('YYYY-MM-DD HH:mm');
                console.log('Local Timezone Date/Time::::::: ', userDatetime);
            })
...