使用带有Alexa帐户链接的C#Lambda中的accessToken

时间:2017-08-27 21:42:56

标签: c# aws-lambda amazon alexa alexa-skills-kit

我使用Azure AD为Alexa设置了帐户关联。我正在使用C#编写我的Lambda函数,因为.Net Core包含访问Dynamics 365所需的库。我似乎无法在C#中获得accessToken。在node.js中,这就像var accessToken = session.user.accessToken一样简单。我在这里错过了什么吗?我不知道如何获取令牌,因此我可以使用它与Dynamics 365进行通信。我知道OAuth部分很好,因为我已经使用node.js访问了令牌。我只需要在C#中实现它。有没有人有这方面的经验?

1 个答案:

答案 0 :(得分:0)

accessToken位于请求正文中。您可以通过以下方式获取accessToken:

    using (var sr = new StreamReader(HttpContext.Current.Request.InputStream))
    {
        var body = sr.ReadToEnd();
        var request = se.Deserialize<Alexa.StandardRequest>(body);
        var accessToken = request.session.user.accessToken;
    }

虽然Alexa.StandardRequest可以通过遵循https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/custom-standard-request-types-reference的Alexa请求规范来声明,但最简单的方法是将请求json数据复制并粘贴到IDE并将其粘贴为类。