我正在尝试按照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查询?
答案 0 :(得分:1)
如果您尝试从Cortana获取图形资源的令牌,则连接帐户中的令牌URL应具有名为resource=https://graph.microsoft.com/
的查询参数。另外,要验证令牌的有效性,请尝试使用JWT对其进行解码。 IO。您应该能够将图表视为令牌中的受众群体。