Data
Learn more about how to get access to user information.
Introduction
User information is mainly used to offer a more personalized expierence, but you can't access it right away. First you have to ask for permission.
Location
You can use the user's address data to provide location specific features, but you have to obtain their permission first.
permission card
will do the job:
Get the country and postal code:
Get the address:
Learn more in the official documentation by Amazon.
Geolocation
The geolocation allows you to access your user's real time location, which the system gets from the alexa enabled mobile device, e.g. their phone.
Geolocation Permission
To access the user's geolocation, you have to first add it to your skill's permission. You can do that in your project.js
file:
After you've added it to your skill's permissions, your users can grant or deny you permission to access their geolocation data at any time. You can check the current status the following ways:
If the permission was denied you can send your user a permission card to ask them to turn it back on:
Geolocation Interface
After your user has given their consent the incoming requests may contain a Geolocation
object, as it depends on the device and its settings.
To see whether a device supports the geolocation interface or not, you can use the following method:
Geolocation Object
The incoming Geolocation
object has the following structure:
Name | Description | Value | Optional |
---|---|---|---|
locationServices |
Contains information whether location sharing is turned on | object |
Yes |
locationServices.access |
Specifies whether location sharing is enabled or disabled | enum - either ENABLED or DISABLED |
No |
locationServices.status |
Specifies whether location sharing is running or not | enum - either RUNNING or STOPPED |
No |
timestamp |
Timestamp specifying when the location data was retrieved | string - ISO 8601 |
No |
coordinate |
Contains information about the coordinates | object |
No |
coordinate.latitudeInDegrees |
Specifies the latitude in degrees | number - [-90.0, 90.0] |
No |
coordinate.longitudeInDegrees |
Specifies the longitude in degrees | number - [-180.0, 180] |
No |
coordinate.accuracyInMeters |
Specifies the uncertainty in the latitude and longitude in meters | number - [0, MAX_INTEGER] |
No |
altitude |
Contains information about the altitude | object |
Yes |
altitude.altitudeInMeters |
Specifies the altitude in meters | number - [-6350, 18000] |
Yes |
altitude.accuracyInMeters |
The uncertainty in the altitude in meters | number - [0, MAX_INTEGER] |
Yes |
heading |
Contains information about the direction the device is heading | object |
Yes |
heading.directionInDegrees |
The degrees from true north | number - (0.0, 360.0] |
Yes |
heading.accuracyInDegrees |
The accuracy of the direction | number - [0, MAX_INTEGER] |
Yes |
speed |
Contains information about the speed at which the device is moving | object |
Yes |
speed.speedInMetersPerSecond |
The meters per second within GPS limits | number - [0, 1900] |
Yes, except for automotive |
speed.accuracyInMetersPerSecond |
The accuracy of the speed | number - [0, MAX_INTEGER] |
Yes |
Each of these values can be undefined
, but either the locationServices
or coordinate
object will be defined at all times.
You can access them the following way:
Contact Information
You can use contact information (name, email address, mobile number) to provide more personalized experiences for the user. To get access to the contact information, ask for permissions first. You can do this by using the contact permission card
.
Get the full name:
Get the given name:
Get the email address:
Get the mobile number:
Account Linking
You can find the documentation about Account Linking here: App Logic > Data