Как и где я могу добавить новое расширение схемы? - PullRequest
0 голосов
/ 21 марта 2019

В течение нескольких недель я пытался добавить новое расширение схемы для своего приложения MVC на основе Microsoft Graph, по сути, чтобы хранить некоторые основные переменные вместе с почтовым сообщением.

Я следовал этому примеруиз GitHub и после нескольких очень разочаровывающих дней, когда выяснилось, что «Boolean» и «Integer» не поддерживали типы свойств, я столкнулся с легендой «Недостаточно прав для завершения операции» ...

Я дергал себя за волосы, пытаясь понять, как и где я должен добавить свое новое расширение, поскольку оно стоит, я пытаюсь добавить его с помощью приведенного ниже кода в качестве аутентифицированного пользователя (который является администратором).:

SchemaExtension extensionPayload = new SchemaExtension()
{
    Description = "my extension example",
    Id = $"myExtensionExample",
    Properties = new List<ExtensionSchemaProperty>()
    {
      new ExtensionSchemaProperty() { Name = "prop1", Type = "String" },
      new ExtensionSchemaProperty() { Name = "prop2", Type = "String" }
    },
    TargetTypes = new List<string>()
    {
      "Message"
    }
};

SchemaExtension test = await client
    .SchemaExtensions
    .Request()
    .AddAsync(extensionPayload);

Мой клиент Graph генерируется со следующим кодом:

public static async Task<GraphServiceClient> GetClient(HttpContextBase context)
{
    string token = await GetAccessToken(context);

    GraphServiceClient client = new GraphServiceClient(
        new DelegateAuthenticationProvider(
            (requestMessage) =>
            {
                requestMessage.Headers.Authorization =
                    new AuthenticationHeaderValue("Bearer", token);

                return Task.FromResult(0);
            }
        )
    );

    return client;
}

И мой конфиг Oauth запрашивает следующие разрешения:

<add key="ida:AppScopes" value="User.Read Mail.ReadWrite Mail.Send Contacts.ReadWrite Directory.AccessAsUser.All" />

У меня естьпроверил разрешения приложения Azure для учетной записи, с которой я тестирую, и все они кажутся правильными?Это то место, где они должны быть ??

ЛЮБЫЕ указатели были бы очень благодарны, так как я потерял так много времени, пытаясь получить, как мне казалось, очень прямолинейное тестовое приложение.

1 Ответ

0 голосов
/ 19 июня 2019

Согласно документам , использование этого вызова с разрешениями приложения не поддерживается. Permissions table from MS Graph API docs

...