从图表下载使用情况报告 API
Downloading Usage Reports From Graph API
作为我正在处理的 C# 应用程序的一部分,我需要包含一个选项来下载过去 7 天的 Teams 使用情况报告。我编写了以下代码来尝试从 Graph 获取数据:
internal static async Task<string> DownloadUsageReport(AuthenticationResult token)
{
try
{
var client = new GraphServiceClient(new DelegateAuthenticationProvider(async (requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
}));
var result = await client.Reports.GetTeamsUserActivityUserDetail("D7").Request().GetAsync();
string reportPath = $"{System.IO.Path.GetTempFileName()}.csv";
using (var fStream = System.IO.File.OpenWrite(reportPath))
{
result.Content.CopyTo(fStream);
}
return reportPath;
}
catch(Exception ex)
{
// some logging
return string.Empty;
}
}
想法是它应该将输出保存到计算机上的 CSV 文件中,如果成功 return 文件路径到调用方法。但是,当它运行时代码失败,我从 Graph 收到以下异常消息:
Unexpected character encountered while parsing value: R. Path '', line
0, position 0.
我已经搜索了错误消息,但我发现的所有内容都与解析 JSON 有关,我不想这样做。有没有其他人在从 Graph 获取使用报告时遇到过这个问题,如果遇到过,您有什么建议吗?提前谢谢你。
看起来像是 Microsoft Graph Client Library for .NET 中的错误,反序列化响应负载时发生异常。
你能试试这个解决方法吗?
var message = client.Reports.GetTeamsUserActivityUserDetail("D7").Request().GetHttpRequestMessage();
var response = await client.HttpProvider.SendAsync(message);
// response content should be csv
var content = await response.Content.ReadAsStringAsync();
作为我正在处理的 C# 应用程序的一部分,我需要包含一个选项来下载过去 7 天的 Teams 使用情况报告。我编写了以下代码来尝试从 Graph 获取数据:
internal static async Task<string> DownloadUsageReport(AuthenticationResult token)
{
try
{
var client = new GraphServiceClient(new DelegateAuthenticationProvider(async (requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
}));
var result = await client.Reports.GetTeamsUserActivityUserDetail("D7").Request().GetAsync();
string reportPath = $"{System.IO.Path.GetTempFileName()}.csv";
using (var fStream = System.IO.File.OpenWrite(reportPath))
{
result.Content.CopyTo(fStream);
}
return reportPath;
}
catch(Exception ex)
{
// some logging
return string.Empty;
}
}
想法是它应该将输出保存到计算机上的 CSV 文件中,如果成功 return 文件路径到调用方法。但是,当它运行时代码失败,我从 Graph 收到以下异常消息:
Unexpected character encountered while parsing value: R. Path '', line 0, position 0.
我已经搜索了错误消息,但我发现的所有内容都与解析 JSON 有关,我不想这样做。有没有其他人在从 Graph 获取使用报告时遇到过这个问题,如果遇到过,您有什么建议吗?提前谢谢你。
看起来像是 Microsoft Graph Client Library for .NET 中的错误,反序列化响应负载时发生异常。
你能试试这个解决方法吗?
var message = client.Reports.GetTeamsUserActivityUserDetail("D7").Request().GetHttpRequestMessage();
var response = await client.HttpProvider.SendAsync(message);
// response content should be csv
var content = await response.Content.ReadAsStringAsync();