У меня проблемы с добавлением команды в группу, ранее созданную с помощью Microsoft Graph.
Я использую клиентскую библиотеку Microsoft Graph .NET (1.19.0) для работы сMicrosoft Graph, следуя учебнику по .NET Core здесь .
Аутентификация выполняется с помощью потока клиента (консоль работает как демон), и у меня нет проблем с построением graphClient
или аутентификацией:
// Auth info
var tenantId = "xxx";
var clientId = "xxx";
var clientSecret = "xxx";
var scopes = new List<string> { "https://graph.microsoft.com/.default" };
// Create ConfidentialClientApplication
var confidentialClientApplication = ConfidentialClientApplicationBuilder.Create(clientId)
.WithAuthority(AzureCloudInstance.AzurePublic, tenantId)
.WithClientSecret(clientSecret)
.Build();
// Create authenticationProvider
ClientCredentialProvider authenticationProvider = new ClientCredentialProvider(confidentialClientApplication, scopes[0]);
// Create graph client
// Use graph BETA endpoint
var baseUrl = "https://graph.microsoft.com/beta/";
var graphServiceClient = new GraphServiceClient(baseUrl, authenticationProvider);
Или создание группы:
var groupName = "Team group";
var groupDescription = "Awesome group";
var group = new Group
{
DisplayName = groupName,
Description = groupDescription,
GroupTypes = new List<string> { "Unified" },
Visibility = "Private",
MailNickname = groupName.Replace("", string.Empty).ToLower(),
MailEnabled = false,
SecurityEnabled = false
};
// Send the POST request to create group
group = await graphServiceClient.Groups.Request().AddAsync(group);
Но при добавлении команды в новую группу:
var team = new Team();
await graphServiceClient
.Groups[group.Id]
.Team
.Request()
.PutAsync(team);
Я получаю следующую ошибку:
Code: InvalidRequest
Message: Could not find member '@odata.type' on object of type 'Team'. Path '['@odata.type']', line 1, position 15.
Inner error:
AdditionalData:
request-id: xxx
date: 2019-10-30 09:12:04
ClientRequestId: xxx
Но при сериализации команды-модели в JSON результат будет:
{"@odata.type":"microsoft.graph.team"}
Что предполагает наличие члена OData с типом Team.
Я попытался добавить оба пакета NuGet Microsoft.AspNet.OData
и Microsoft.Data.OData
согласно этому предложению здесь: Не удалось найти элемент '@ odata.type' в объекте типа 'TeamMemberSettings' , но это не так
Я также пытался вызвать конечную точку напрямую с HttpRequest
, которыйдал тот же результат. Я также пытался использовать один и тот же код в приложениях .NET Core и .Net Framework.