Я использую API навыков Amazon для Amazon и API активных событий для отправки уведомлений в мой навык Alexa. Я могу отправить уведомление с многоадресной рассылкой, но она не работает для типа доставки "Unicast"
Я получаю HTTP
код состояния: 403
и сообщение об ошибке:
"No enablement for clientId:amzn-*********"
Я следовал навыкам Alexa Проактивная документация API
При отправке уведомления на конечную точку
https://api.amazonalexa.com/v1/proactiveEvents/stages/development
Я получаю accesstoken
, используя учетные данные навыка, и добавляю accesstoken
в качестве токена на предъявителя к запросу.
Примечание: я уже включил навык с https://alexa.amazon.in и
Я получил идентификатор пользователя Amazon, apiAccesstoken и согласие. Я сохранил их в своей базе данных (mongoDB).
Я использую идентификатор пользователя Amazon для отправки уведомления
<pre>
<code>
var uuid = require('node-uuid');
var accessToken = "This`enter code here` token will be obtained from amazon oauth api.";
var userId = "amzn1.ask.account.AH2ZEP5WGJGAEPWPOG3Getc.....";
var uuid = require('node-uuid');
var referenceId = uuid.v4();
var now = new Date();
var expiresOn = addMinutes(now, 300);
var eventData = {
"timestamp": new Date(),
"referenceId": uuid,
"expiryTime": expiresOn,
"event": {
"name": "AMAZON.MessageAlert.Activated",
"payload": {
"state": {
"status": "UNREAD",
"freshness": "NEW"
},
"messageGroup": {
"creator": {
"name": "Andy"
},
"count": 5,
"urgency": "URGENT"
}
}
},
"localizedAttributes": [
{
"locale": "en-US",
"MessageAlert": "UNREAD"
},
{
"locale": "en-GB",
"MessageAlert": "UNREAD"
}
],
"relevantAudience": {
"type": "Unicast",
"payload": {
"user": userId
}
}
};
var opt = {
data: eventData,
token: accessToken
}
sendRequest(opt, function(err, ret, code) {
console.log("err : ",JSON.stringify(err, null, 2));
console.log("ret : ",JSON.stringify(ret, null, 2));
console.log("code : ",JSON.stringify(code, null, 2));
});
function sendRequest(options, callback) {
var data = options.data;
var token = options.token;
var headers = {
"Content-Type": "application/json",
"Authorization":"Bearer "+token
};
var opt = {
url: "https://api.amazonalexa.com/v1/proactiveEvents/stages/development",
method: "POST",
headers: headers,
body: JSON.stringify(data)
};
request(opt, function(error, response, body){
var statusCode = (response && response.statusCode) ? response.statusCode : "";
if(error) {
return callback(error);
} else if(body) {
try {
var result = JSON.parse(body);
return callback(null, result, statusCode);
} catch(e) {
console.log("e.message : ",e.message);
return callback(null, body, statusCode);
}
} else {
return callback(null, body, statusCode);
}
});
}
Результат должен быть HTTP
код состояния с 202
.
Но я получаю HTTP
код состояния 403
и сообщение об ошибке:
"No enablement for clientId: *************"