我可以使用 Microsoft Graph API 在我属于 MS Teams 的所有 teams/groups 中搜索文件吗
Can I search for a file through all the teams/groups I belong to on MS Teams using the Microsoft Graph API
我一直在使用以下 API,我建议使用 TEAM_ID/GROUP_ID 进行搜索
https://graph.microsoft.com/v1.0/groups/GROUP_ID/drive/root/search(q='SEARCH_VALUE')
我宁愿在没有组 ID 的情况下搜索我所属的所有组来搜索 Teams Drive 中的内容。任何线索将不胜感激。
O365 组是 Microsoft 云世界中许多事物的基础,团队是 office 365 组的附加组件,Sharepoint(主要存储团队文件的地方)也是如此
我不相信有一个图形查询可以 return 您有权访问的所有驱动器文件。您必须构建 2 个查询,一个查询您所属的组,然后循环遍历它以对每个组执行搜索查询。获取您所属群组的所有群组 ID 是 /getMemberGroups https://docs.microsoft.com/en-us/graph/api/user-getmembergroups?view=graph-rest-1.0&tabs=http
您可能可以使用 powershell 或一个简单的程序或任何可以调用图形的语言来完成。
group_id 为必填项,见here。
您可以尝试使用 Powershell 获取您想要的组,然后循环请求 MS Graph API。
#sign in your azure account
Connect-AzureAD
#get access token
function Get-AzureRMBearerToken
{
[CmdletBinding()]
Param
(
$TenantID,
$AppID,
$ClientSecret
)
$Result=Invoke-RestMethod -Uri https://login.microsoftonline.com/$TenantID/oauth2/token?api-version=1.0 -Method Post -Body @{"grant_type" = "client_credentials"; "resource" = "https://graph.microsoft.com/"; "client_id" = "$AppID"; "client_secret" = "$ClientSecret" }
$Authorization = "{0} {1}" -f ($result.token_type , $result.access_token)
$Authorization
}
$accessToken = Get-AzureRMBearerToken -TenantID "{your tenant id}" -AppID "{application/client id}" -ClientSecret "{value in your client secret}"
#get all groups
$groups = Get-AzureADGroup -All
#request MS Graph API in the loop
Foreach($group in $groups){
$url = "https://graph.microsoft.com/v1.0/groups/"+$group.ObjectId+"/drive/root/search(q='SEARCH_VALUE')"
Invoke-RestMethod -Method Get -Uri $url -Headers @{ Authorization = $accessToken }
}
我通过使用 Search Drive Items 找到了解决方案,该项目目前在 Graph API 的 Beta 版中可用。它从您在 azure 租户下有权访问的所有团队驱动器和 Sharepoint 驱动器中详细搜索文件列表。
我一直在使用以下 API,我建议使用 TEAM_ID/GROUP_ID 进行搜索
https://graph.microsoft.com/v1.0/groups/GROUP_ID/drive/root/search(q='SEARCH_VALUE')
我宁愿在没有组 ID 的情况下搜索我所属的所有组来搜索 Teams Drive 中的内容。任何线索将不胜感激。
O365 组是 Microsoft 云世界中许多事物的基础,团队是 office 365 组的附加组件,Sharepoint(主要存储团队文件的地方)也是如此
我不相信有一个图形查询可以 return 您有权访问的所有驱动器文件。您必须构建 2 个查询,一个查询您所属的组,然后循环遍历它以对每个组执行搜索查询。获取您所属群组的所有群组 ID 是 /getMemberGroups https://docs.microsoft.com/en-us/graph/api/user-getmembergroups?view=graph-rest-1.0&tabs=http
您可能可以使用 powershell 或一个简单的程序或任何可以调用图形的语言来完成。
group_id 为必填项,见here。
您可以尝试使用 Powershell 获取您想要的组,然后循环请求 MS Graph API。
#sign in your azure account
Connect-AzureAD
#get access token
function Get-AzureRMBearerToken
{
[CmdletBinding()]
Param
(
$TenantID,
$AppID,
$ClientSecret
)
$Result=Invoke-RestMethod -Uri https://login.microsoftonline.com/$TenantID/oauth2/token?api-version=1.0 -Method Post -Body @{"grant_type" = "client_credentials"; "resource" = "https://graph.microsoft.com/"; "client_id" = "$AppID"; "client_secret" = "$ClientSecret" }
$Authorization = "{0} {1}" -f ($result.token_type , $result.access_token)
$Authorization
}
$accessToken = Get-AzureRMBearerToken -TenantID "{your tenant id}" -AppID "{application/client id}" -ClientSecret "{value in your client secret}"
#get all groups
$groups = Get-AzureADGroup -All
#request MS Graph API in the loop
Foreach($group in $groups){
$url = "https://graph.microsoft.com/v1.0/groups/"+$group.ObjectId+"/drive/root/search(q='SEARCH_VALUE')"
Invoke-RestMethod -Method Get -Uri $url -Headers @{ Authorization = $accessToken }
}
我通过使用 Search Drive Items 找到了解决方案,该项目目前在 Graph API 的 Beta 版中可用。它从您在 azure 租户下有权访问的所有团队驱动器和 Sharepoint 驱动器中详细搜索文件列表。