You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Graph SDK获取DriveItem活动列表报错问题

解决Graph SDK调用DriveItem.Activities报错的问题

问题根源:C#版Microsoft Graph v1.0 SDK的DriveItem类未公开activities属性,因此直接调用.Expand("activities")会触发OData验证错误,提示找不到该属性——尽管手动调用REST API能正常返回数据。

以下是可行的解决方案:

方案1:自定义请求绕过SDK强类型限制

构造完整的API请求URL,通过SDK的HttpProvider发送请求,同时自定义类接收包含activities的响应:

  1. 首先定义扩展类,添加Activities属性:
using Microsoft.Graph;
using System.Text.Json.Serialization;

public class DriveItemWithActivities : DriveItem
{
    [JsonPropertyName("activities")]
    public List<ItemActivity> Activities { get; set; }
}
  1. 发送自定义请求:
var requestUrl = $"drives/{driveId}/items/{driveItemId}?expand=activities";
var driveItem = await this.GraphServiceClient.HttpProvider.SendAsync<DriveItemWithActivities>(
    new HttpRequestMessage(HttpMethod.Get, requestUrl),
    new SerializationSettings());

// 访问活动列表
var activities = driveItem.Activities;

方案2:切换到Beta版SDK(非生产环境推荐)

Beta版SDK的DriveItem类已包含activities属性,可直接使用Expand:

  1. 安装Beta版NuGet包:
Install-Package Microsoft.Graph.Beta
  1. 使用Beta版客户端调用:
using Microsoft.Graph.Beta;

var betaClient = new GraphServiceClient(/* 你的身份验证提供者 */);
var driveItem = await betaClient.Drives[driveId].Items[driveItemId]
    .Request()
    .Expand("activities")
    .GetAsync();

var activities = driveItem.Activities;

注意:Beta版API存在变动风险,不建议用于生产环境。

方案3:直接用HttpClient调用REST API

绕开SDK,直接发送HTTP请求并解析响应:

using System.Net.Http;
using System.Net.Http.Headers;

var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "你的访问令牌");

var response = await httpClient.GetAsync($"https://graph.microsoft.com/v1.0/drives/{driveId}/items/{driveItemId}?expand=activities");
response.EnsureSuccessStatusCode();

var jsonResponse = await response.Content.ReadAsStringAsync();
// 使用System.Text.Json或Newtonsoft.Json解析jsonResponse,提取activities字段

内容的提问来源于stack exchange,提问作者Maryna Shubna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 05:40:31