如何以及在哪里添加新的架构扩展?

时间:2019-03-21 15:35:17

标签: c# microsoft-graph microsoft-graph-sdks

数周以来,我一直在尝试为基于Microsoft Graph的MVC应用程序添加新的架构扩展,实质上是将一些基本变量与邮件一起存储。

我一直遵循this example from 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);

“我的图形客户端”是使用以下代码生成的:

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 :(得分:0)

根据docs,不支持将此调用与“应用程序”权限一起使用。 Permissions table from MS Graph API docs