Как добавить расширения с помощью Microsoft Graph Client?
Я хочу добавить расширения для пользователя с помощью 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);
}
Это то, что я пробовал до сих пор. Это возвращает исключение "отказано в доступе", но нет проблем с доступом к существующим расширениям или другим Me
конечные точки пользователя.
3 ответа
Решение
Чтобы добавить новое расширение, следуйте этому коду:
_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);
}
Чтобы получить расширение, следуйте этому коду:
var userExtensions = await _graphClient.Me.Extensions["nameofExtension"].Request().GetAsync();
GraphServiceClient client = AuthHelper.GetAuthClient();
var currentUser = await client.Me.Request().GetAsync();
string id = currentUser.Id;
var test = await client.Me.Extensions.Request().GetAsync();
Console.WriteLine(currentUser.DisplayName);
Console.WriteLine("Click to update extension");
Console.ReadLine();
Dictionary<string, object> addData = new Dictionary<string, object>()
{
{"Key", "Value"}
};
var extObject = new OpenTypeExtension()
{
ExtensionName = "testExtension",
AdditionalData = addData
};
try
{
await client.Me.Extensions.Request().AddAsync(extObject);
}
catch (Exception ex)
{
//
}
Я добавил правильный код
Dictionary<string, object> addData = new Dictionary<string, object>();
addData.Add("testUpdateKey", "dataUpdateValue");
var extPatchObject = new OpenTypeExtension();
extPatchObject.ExtensionName = "TestData";
extPatchObject.AdditionalData = addData;
try
{
graphClient.Users["usernameGoesHere"].Extensions["TestData"].Request().UpdateAsync(extPatchObject).Wait();
}