C# 控制台应用程序中的Microsoft Graph.NET客户端库和InvalidAuthenticationToken
我是在一个控制台应用程序中编写代码的。我正在尝试证明一种从我的个人C# 控制台应用程序中的Microsoft Graph.NET客户端库和InvalidAuthenticationToken,c#,onedrive,microsoft-graph-api,C#,Onedrive,Microsoft Graph Api,我是在一个控制台应用程序中编写代码的。我正在尝试证明一种从我的个人OneDrive帐户获取松散文档列表的方法。我的代码抛出遇到了一些问题: InvalidAuthenticationToken:CompactToken解析失败,错误代码为-2147184118 在做了一点研究之后,看起来这个错误是由于将OAuth令牌作为OAuth令牌而不是bear发送的 由于我在控制台应用程序中工作,我一直很难找到有关如何正确访问Microsoft Graph或OneDrive SDK的任何文档或教程 有没有办
OneDrive
帐户获取松散文档列表的方法。我的代码抛出遇到了一些问题:
InvalidAuthenticationToken:CompactToken解析失败,错误代码为-2147184118
在做了一点研究之后,看起来这个错误是由于将OAuth令牌作为OAuth令牌而不是bear发送的
由于我在控制台应用程序中工作,我一直很难找到有关如何正确访问Microsoft Graph
或OneDrive SDK
的任何文档或教程
有没有办法解决这个问题
非工作代码:
我还添加了一个堆栈跟踪图像:
此外,我还提供了一张网络流量的屏幕截图:
您能提供GetAsync()调用的请求和响应的净化跟踪吗?@MichaelMainer MSFT我添加了一个堆栈跟踪-这是您要找的吗?很抱歉,我不清楚。你能通过Fiddler提供一个请求和响应的截图吗?@MichaelMainer-MSFT-啊,好的-我已经为你添加了这个屏幕截图。我应该以一种更宽容的方式来更新我正在做的事情。我正在尝试创建一个控制台应用程序,该应用程序与允许我从用户的
OneDrive
帐户访问列表松散文件一起工作。之所以使用Graph SDK
,是因为它具有drive
功能,因为我找不到通过OneDrive SDK
访问它的清晰方法。你有没有让它工作过?我有完全相同的错误。显然,这是因为在标题中,OAuth令牌是以“誓言”而不是“承载者”的形式发送的,但我不知道如何在GraphServiceClient中解决这个问题
[STAThread]
static void Main(string[] args)
{
var graphserviceClient = new GraphServiceClient(new DelegateAuthenticationProvider(
(requestMessage) =>
{
requestMessage.Headers.Authorization =
new AuthenticationHeaderValue("bearer", AccessToken);
return Task.FromResult(0);
}));
Task.Run(async () =>
{
try
{
var drive = await graphserviceClient.Me.Drive.Root.Request().GetAsync();
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}).GetAwaiter().GetResult();
}