【问题标题】:Create folder in user mailbox with Graph API使用 Graph API 在用户邮箱中创建文件夹
【发布时间】:2020-04-14 01:23:53
【问题描述】:

想要使用 Graph API 在 Exchange Online 中存在的用户邮箱中创建一个文件夹。 经过排查,如果我使用“https://graph.microsoft.com/v1.0/users/testuser01@domain.com/mailFolders”,感觉可以,但是显示错误,无法创建。 目前,“Exchange> Mail.ReadWrite, MailboxSettings.ReadWrite”被分配给执行用户(管理员)。 但是,它显示“访问被拒绝。检查凭据并重试。”权限错了吗? 还是指定的 URL 不正确? 很抱歉给您带来麻烦,但感谢您的回复。

【追加】

$body = @{
    grant_type="client_credentials"
    resource=$resource
    client_id=$ClientID
    client_secret=$ClientSecret
}
`#Get Token
$oauth = Invoke-RestMethod -Method Post -Uri $loginURL/$TenantName/oauth2/token -Body $body

API Permissions

【问题讨论】:

  • 请出示您的应用注册API permissions的截图,以及您是如何获取访问令牌并调用api的?
  • 请用您获取令牌的方式更新问题。
  • 谢谢你的回答。我更新了,还可以吗?
  • 请检查我的解决方案。
  • 非常感谢。我能够正常执行您收到的内容。我想知道在 PowerShell 中使用 Graph API 实际创建文件夹所需的命令,是否应该将其列为另一个问题?我使用前面的方法获得了令牌,并使用以下命令创建了它。但是,“StatusCode = 200”没有显示错误,但没有创建文件夹。对于所有问题,我深表歉意,但如果您能确认,我将不胜感激。

标签: azure-ad-graph-api


【解决方案1】:

您正在使用client credential flow获取token来调用Microsoft Graph - Create MailFolder,因此您需要将Micrsoft Graph的应用程序权限Mail.ReadWrite添加到您的AD App中。

1.添加应用权限Mail.ReadWrite,如下所示。

2.点击Grant admin consent for xxx按钮,确保你请求中的$resourcehttps://graph.microsoft.com

更新:

这是一个调用Create MailFolder API 来创建 MailFolder 的 powershell 示例。

$uri = "https://graph.microsoft.com/v1.0/users/joyw@xxxxx.onmicrosoft.com/mailFolders"
$headers = @{
    'Content-Type' = 'application/json'
    'Authorization' = 'Bearer <access-token-here>'
}
$body = ConvertTo-Json @{
    "displayName" = "testfolder1"
}
Invoke-RestMethod -Method Post -Uri $uri -Headers $headers -Body $body 

List mailFolders检查Graph Explorer中的结果:

【讨论】:

    猜你喜欢
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    相关资源
    最近更新 更多