gpt4 book ai didi

c# - 如何从 C# 调用 Microsoft Graph Beta API

转载 作者:行者123 更新时间:2023-12-02 00:02:48 25 4
gpt4 key购买 nike

我尝试获取用户个人资料图片的内容,结果发现我必须调用 Beta 版本,因为当前版本给出以下错误消息:

"code": "GetUserPhoto",
"message": "The operation is not supported."

因此,我尝试切换到 Beta,这是我用 C# 编写的代码,但它不起作用:

Microsoft.Graph 1.6.2

List<QueryOption> options = new List<QueryOption>
{
new QueryOption("$api-version", "beta")
};

var pictureStream = await graphClient.Me.Photo.Content.Request(options).GetAsync();

我收到了同样的错误消息。

我在图形浏览器中尝试了相同的请求。 1.0 不能用,但 Beta 可以。

最佳答案

api-version 查询参数由 Azure AD Graph API 使用。这是与 Microsoft Graph 不同的 API。有很多功能重叠(Azure AD Graph 正在慢慢迁移到 Microsoft Graph),但它们使用完全不同的实体和调用约定。

为了使用 Microsoft Graph .NET Client Library 调用 /beta 端点,您需要更改客户端的BaseUrl:

graphClient.BaseUrl = "https://graph.microsoft.com/beta";
var pictureStream = await graphClient.Me.Photo.Content.Request().GetAsync();

有关 /beta 端点的一些重要说明:

  1. 它不受支持,也不适合生产。所以不要这样做。或者至少不要告诉任何人,如果它停止工作也不要调用支持人员。 ;-)

  2. .NET 客户端使用根据生产元数据构造的对象。这意味着在 /beta 中添加的任何实体、操作或属性都不存在于 SDK 附带的模型中。

  3. .NET 客户端将忽略 Microsoft Graph 返回的任何它不希望看到的值。因此,如果端点返回未包含在生产元数据中的属性(请参阅#2),它将被忽略。

    只要您仅使用 /beta 来获得功能,但仍期望 /v1.0 结果,它应该可以正常工作。例如,照片仅查看 v1.0 中的 Exchange,但同时查看 Exchange Active Directory,但仍然返回相同的结果。理论上,这意味着您应该能够毫无问题地将 /beta 替换为 /v1.0

关于c# - 如何从 C# 调用 Microsoft Graph Beta API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47161815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com