Is Alexa notifications are available for dev skills? I'm not seeing any configuration anywhere. I'm getting this error when sending notification.
{
"message": "The authentication token is not valid.",
"code": 403
}
No, Notifications feature in the Alexa Skills Kit is not generally available. Anyone who wants to have notifications feature has to fill this survey and Amazon team provides more information if they think the skill is qualified to have notifications feature. For more information see this
Related
I try to fetch a refresh token for my alexa smarthome skill. For this I'm using the following command ask util generate-lwa-tokens --client-id <client_id> --client-confirmation <secret>
The outcome is a Http 400 with "localhost is not whitelisted". The message points to adding the url under Web Settings-> return url.
However there is so such option in the Alexa developer console.
400 Bad Request
The redirect URI you provided has not been whitelisted for your application. Please add your redirect URI in the 'Allowed Return URLs' section under 'Web Settings' for your Security Profile on Amazon Developer Portal.
The place where I can add a return urls is in the Amazon developer console under Security profiles. But I don't see a way to connect this profile with my alexa skill.
My question is, how to get a refresh token for an Alexa skill.
The idea is to use this token for automated testing.
Usually when that error message occurs, it means that the deviceInfo::productId value in AlexaClientSDKConfig.json does not match the corresponding value from the AVS developer console.
I am trying to fetch the MS Teams roaster / user profile.
Below are the sequence of Postman calls I am making:
Generated Access Token:
https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token
Generated User Access Token:
https://login.microsoftonline.com/{{TenantId}}/oauth2/v2.0/token Get
My Joined Team: https://graph.microsoft.com/v1.0/me/joinedTeams
Get Internal Team
Id:https://graph.microsoft.com/v1.0/teams/{{TeamId}}/channels
Fetch Roster/user
profile:https://{{ServiceUrl}}/v3/conversations/{{tId}}/members/
Everything was working fine, but today I am getting 403 forbidden error
{
"error": {
"code": "BotNotInConversationRoster",
"message": "The bot is not part of the conversation roster."
}
}
Please note that I am able to communicate with the bot.
Below are the permissions that I have provided for delegate and application
Directory.Read.All
Group.Read.All
Group.ReadWrite.All
User.Read
User.Read.All
User.ReadBasic.All
Any suggestions to fix the same?
Notice that your last call, the one to "serviceurl", is NOT part of the Graph, obviously. As a result, it's authentication is different. In this case, Teams is authenticating it as a bot, and it needs certain rights. For instance, the bot MUST be installed to the Team in question in order to get the roster for that Team. You say it was working before - is that in the same Team? If not, the bot needs to be added to that Team. If "yes", then perhaps the bot was removed from the Team by someone?
You must install your bot as an app in a team before you can call this API. Sending it messages via a webhook does not count. It must be an app installed in the team. Because the bot is retrieving personal information, it needs to be added to that context before the API will work.
See:
Bot Overview - https://learn.microsoft.com/en-us/microsoftteams/platform/bots/what-are-bots
Bot Context - https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet
When trying to call the Alexa Device Address API using the following HTTPS endpoint;
apiEndpoint/v1/devices/deviceId/settings/address/countryAndPostalCode
Header:
Authorization, "Bearer eyJ..... apiAccessToken"
I receive back an HTTP 403 response with an error message saying
{
"type": "FORBIDDEN",
"message": "The authentication token is not valid."
}
I have enabled the countryAndPostalCode permission in the skill, and ensured that it is granted within the Alexa iOS app.
The skill itself is still under development (not published), it's in the en-GB locale, and I'm testing from the Alexa iOS app under the same Amazon account.
I have enabled the countryAndPostalCode permission in the skill, and
ensured that it is granted within the Alexa iOS app.
To be safe, I suggest you to triple-check by navigating to Skill Settings > Permissions > Manage Permissions, and make sure the toggle for "Device Country and Postal Code" is enabled. I have seen some inconsistency on Android between the status shown on the Skill Settings page and the actual toggle state.
Double-check your header: {"Authorization": "Bearer " + apiAccessToken}. As you mentioned, consentToken has been deprecated, so it should be apiAccessToken. Also make sure you have a space between Bearer and apiAccessToken.
If it still doesn't work, try re-enabling the Skill. Perhaps you got into a bad state somehow.
As a side note, apparently it does not allow you to call the countryAndPostalCode API even if you have permission to retrieve the full address. So if you requested the full address permission, you have to call the full address API.
In graph explorer the https://graph.microsoft.com/v1.0/me?$select=birthday endpoint gives me the example profile birthday
but when I try it with my account I receive this error
{
"error": {
"code": "ResourceNotFound",
"message": "Resource not found.",
"innerError": {
"request-id": "37e1643d-0bfd-46a4-8b48-70a4922f2952",
"date": "2017-12-29T21:33:16"
}
}
}
even though it returns my profile with the /me endpoint. I believe it has all the same scopes as the example and I checked all the .read scopes to make sure it had everything needed.
My birthday is in my profile and I am able to get my birthday from the deprecated live api with the wl.birthday scope but not the new graph api.
Thanks for pointing this out. Looks like we need to update our documentation. I filed this doc issue to track. Some user properties are only available for commercial (work or school) accounts (i.e. AAD based), through Microsoft Graph. Microsoft Graph, when signed in though a consumer account, has limited access to the same data that is exposed in the deprecated live API. I'll check if this particular item can be fixed.
Hope this helps,
I have been using outlook rest api's to read/create/update calendar events of outlook account.
Followed all the steps https://dev.outlook.com/RestGettingStarted/
It works very well for the subscription account's.
But the api does not work to load the calendar events of my personal outlook account ex: phani.xxx#outlook.com.
API responds with below error:
"error": {
"code": "ErrorMissingEmailAddress",
"message": "When making a request as an account that does not have a mailbox, you must specify the mailbox primary SMTP address for any distinguished folder Ids."
}
I have tried the same with outlook sandbox got the same response.
Any help on this to get this api working for any outlook account. Will be highly appreciated.
This is likely due to your account not yet being enabled for the REST API. There's an issue with the v2 endpoint not returning the proper error message in this case.