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

.NET SDK 5.8.0中无法为Teams API设置model=B计费查询参数

问题:Microsoft Graph .NET SDK 无法设置 Teams getAllMessages 的计费模型参数

问题说明

  • 已在Azure完成权限与订阅配置,通过Postman或PowerShell调用HTTP请求可正常使用指定计费模型:
    https://graph.microsoft.com/v1.0/teams/{{team-id}}/channels/getAllMessages?model=B
  • 但在.NET SDK中无法直接实现该操作,因为QueryParameters对象不存在Model属性,以下代码无法编译:
var res = await _graphClient.Teams[teamId].Channels.GetAllMessages.GetAsync((rq) =>
{
    rq.QueryParameters.Top = 200;
    rq.QueryParameters.Model = "B"; // 无此属性,报错
});
  • MSDN文档未提及SDK中配置该计费模型的方法,且.NET SDK不支持像PowerShell的Invoke-GraphRequest那样直接通过URL调用Graph API,已在GitHub提交相关Issue。

临时解决方案

通过手动修改请求URI的方式绕过该限制,代码示例如下:

// 从请求构建器获取基础请求信息
var req = _graphClient.Teams[teamId].Channels.GetAllMessages.ToGetRequestInformation();

// 手动拼接包含计费模型参数的完整URI
req.URI = new Uri($"https://graph.microsoft.com/v1.0/teams/{teamId}/channels/getAllMessages()?model=B&%24top=200");

// 配置错误映射(与SDK默认规则一致)
var errorMapping = new Dictionary<string, ParsableFactory<IParsable>> {
    {"4XX", ODataError.CreateFromDiscriminatorValue},
    {"5XX", ODataError.CreateFromDiscriminatorValue},
};

// 通过请求适配器发送修改后的请求
var res = await _graphClient.RequestAdapter.SendAsync(req, GetAllMessagesResponse.CreateFromDiscriminatorValue, errorMapping);

期望

希望微软能在后续的.NET SDK版本中正式支持model参数的配置,无需手动拼接URI。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 02:35:01