【发布时间】:2023-04-06 05:14:01
【问题描述】:
我正在尝试使用 MS Graph API(我是新手)编写一个 Powershell 脚本,将事件从 private 组日历复制到 public 组日历。
到目前为止,我已经设法通过这个调用获得了私人组:
$api = "https://graph.microsoft.com/v1.0/groups"
$groups = $null
try { $groups = Invoke-RestMethod -Headers @{Authorization = "Bearer $($token.access_token)" } -Uri $api -Method "GET" -ContentType "application/json" }
catch { Write-host -Foreground Red $_}
$calendar_group = $groups.value | ? -Property mailNickname -eq $pvt_group
但是,当我尝试向前移动并获取该组的事件时,我会因 403 错误而被退回。
我正在尝试的电话是:
$api = "https://graph.microsoft.com/v1.0/groups/$group_ID/calendar/events"
Write-Host $api -Fore Green
$events = $null
try { $events = Invoke-RestMethod -Headers @{Authorization = "Bearer $($token.access_token)" } -Uri $api -Method "GET" -ContentType "application/json" }
catch { Write-host -Foreground Red $_}
或者:
$api = "https://graph.microsoft.com/v1.0/groups/$group_ID/events"
Write-Host $api -Fore Green
$events = $null
try { $events = Invoke-RestMethod -Headers @{Authorization = "Bearer $($token.access_token)" } -Uri $api -Method "GET" -ContentType "application/json" }
catch { Write-host -Foreground Red $_}
两者都因相同的错误而失败。 注意:$group_ID 变量在第一次调用时被正确赋值。
我已使用以下权限在 Azure 上注册了该应用:
- Calendars.Read 委托
- Calendars.Read.Shared 委托
- Calendars.ReadWrite 委托
- Calendars.ReadWrite.Shared 委托
- Directory.AccessAsUser.All 委托
- Directory.Read.All 委派
- Directory.Read.All 应用程序
- Directory.ReadWrite.All 委托
- Directory.ReadWrite.All 应用程序
- Group.Read.All 委派
- Group.Read.All 应用程序
- Group.ReadWrite.All 委托
- Group.ReadWrite.All 应用程序
- GroupMember.Read.All 委托
- GroupMember.Read.All 应用程序
- User.Read 委托
有人知道我做错了什么吗? 非常感谢。
【问题讨论】:
-
您能否将
$($token.access_token)的值复制粘贴到jwt.ms 并检查scp元素中的值。它是否包含 Group.Read.All? -
我发现对这些情况非常有帮助的是Graph Explorer。只是提一下,以防您还没有检查过。
-
嗨@Melissa 感谢您的意见。这对我来说真的很新鲜。回复:jwt.ms:没有 scp 元素。但是,在声明的角色部分中,这些都列出了:Group.Read.All,Directory.ReadWrite.All,Group.ReadWrite.All,Directory.Read.All,GroupMember.Read.All re: Graph Explorer: I run the在那里查询,我得到相同的错误:“消息”:“访问被拒绝。检查凭据并重试。”,以及建议:禁止 - 403 - 73ms。您需要同意修改权限(预览)选项卡上的权限,我认为我已经这样做了。
-
我可以重现您的问题。我今天会试着调查一下。顺便问一下,你不使用 Az powershell 模块有什么原因吗?
-
@Melissa 感谢您的时间和精力。没有具体原因,我想我只是开始尝试这种方式。
标签: azure powershell microsoft-graph-api