已经讨论了无数有关该主题的资料,请在这里提供帮助:
我正在设置从Amazon Alexa“技能”到外部服务的OAuth 2.0帐户链接。该技能成功识别出缺少访问令牌,并向用户显示LinkAccount卡。问题是:卡上没有指向授权页面的链接。
技能的帐户链接设置中肯定提供了相应的授权URI。
意图代码:
const LaunchRequestHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'LaunchRequest';
},
handle(handlerInput) {
const accessToken = handlerInput.requestEnvelope.context.System.user.accessToken;
if (accessToken == undefined){
const speechText = "Please use the Alexa app to link your Amazon account to the external account"
return handlerInput.responseBuilder
.speak(speechText)
.withLinkAccountCard()
.getResponse();
} else {
const speechText = 'Welcome to the Alexa Skills Kit, you can say hello!';
return handlerInput.responseBuilder
.speak(speechText)
.reprompt(speechText)
.withSimpleCard('Hello World', speechText)
.getResponse();
}
},
};
JSON输出:
{
"body": {
"version": "1.0",
"response": {
"outputSpeech": {
"type": "SSML",
"ssml": "<speak>Please use the Alexa app to link your Amazon account to the external account</speak>"
},
"card": {
"type": "LinkAccount"
}
},
"sessionAttributes": {},
"userAgent": "ask-node/2.0.7 Node/v6.10.3"
}
}
我正在使用Amazon开发人员控制台模拟器和iOS Alexa应用进行测试(无物理设备)。
谢谢。