如何使用 Microsoft Graph 客户端添加扩展?

Akh*_*K J 4 c# microsoft-graph-sdks microsoft-graph-api

我想使用 GraphClient 向用户添加扩展。我在任何地方都找不到合适的 C# 代码。任何人都可以帮忙吗?

Dictionary<string, object> addData = new Dictionary<string, object> {
    {
    "HoloFlag",
    currentUser.UserPrincipalName
    }
};

var extPatchObject = new OpenTypeExtension();

extPatchObject.ExtensionName = "com.holobeam3.extension";
extPatchObject.AdditionalData = addData;

try {
    var extension = await _graphClient
        .Me
        .Extensions
        .Request()
        .AddAsync(extPatchObject);
    Debug.Log(extension);
} catch (Exception ex) {
    Debug.Log(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所尝试的。这将返回“访问被拒绝”异常,但在访问用户的现有扩展或其他Me端点时没有问题。

Akh*_*K J 6

要添加新扩展,请遵循以下代码:

 _graphClient = new GraphServiceClient(new DelegateAuthenticationProvider(async requestMessage =>
            {
                requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", AccessToken);
            }));
Dictionary<string, object> addData = new Dictionary<string, object>
                {
                    {"Key","Value" }
                };
                var extObject = new OpenTypeExtension();
                extObject.ExtensionName = "TestExtension";
                extObject.AdditionalData = addData;
                try
                {
                    await _graphClient.Users["usernamegoeshere"].Extensions.Request().AddAsync(extObject);
                }
Run Code Online (Sandbox Code Playgroud)

为了获取扩展,请遵循以下代码:

var userExtensions = await _graphClient.Me.Extensions["nameofExtension"].Request().GetAsync();
Run Code Online (Sandbox Code Playgroud)