如何在带有图形api sdk的Cortana Connected帐户方案中使用身份验证令牌

时间:2017-06-12 00:29:56

标签: botframework microsoft-graph cortana-skills-kit

我正在尝试按照here提供的Cortana关联帐户示例进行操作。默认示例使用live api,它工作正常;但是,我想使用Graph api sdk。尝试使用Graph api使用相同的身份验证令牌(由Cortana作为其中一个实体发送)会出现此错误:

Microsoft.Graph.ServiceException: 'Code: InvalidAuthenticationToken 
Message: CompactToken parsing failed with error code: -2147184118

相关代码是: var graphserviceClient = new GraphServiceClient(new AzureAuthenticationProvider(authAccessToken));

AzureAuthenticationProvider类是:

public  class AzureAuthenticationProvider : IAuthenticationProvider
{
    string _accessToken;
    public AzureAuthenticationProvider(string accessToken)
    {
        _accessToken = accessToken;
    }

    public async Task AuthenticateRequestAsync(HttpRequestMessage request)
    {
        request.Headers.Add("Authorization", "Bearer " + _accessToken);
    }
}

如何使用Cortana发送的auth令牌到我的机器人使用Graph Sdk执行Graph查询?

1 个答案:

答案 0 :(得分:1)

如果您尝试从Cortana获取图形资源的令牌,则连接帐户中的令牌URL应具有名为resource=https://graph.microsoft.com/的查询参数。另外,要验证令牌的有效性,请尝试使用JWT对其进行解码。 IO。您应该能够将图表视为令牌中的受众群体。