如何以编程方式获取租户中当前用户的“最近访问的共享点站点”?

How can I programmatically get the `recently visited sharepoint site` of current user in the tenant?

我想创建一个显示最近访问的 SharePoint 站点的应用程序 (WebPart)。 我试过使用 MicrosoftGraph API,它给了我一个空值

这是我尝试过的(在 MS Graph Explorer 上检查过)

Url: https://graph.microsoft.com/beta/me/insights/used

响应:"value":[]

this.properties.graphClient.api("me/insights/used")
                          .version("beta")
                          .filter(`ResourceVisualization/Type eq 'Web'`)
                          .top(5)
                          .get((err, res: IRecentWebs) => {

           if (err) {
               return; 
           }

           if(res && res.value && res.value.length > 0) {
               this. _renderRecentSites(res.value);
           } else{
               alert('No site found');
           }
       });

并且还尝试将过滤器更改为

     ...
     .filter(`ResourceVisualization/containerType eq 'Site'`)
     ...

还有 nothing.How 我可以这样做吗?

此处列出支持的容器类型https://docs.microsoft.com/en-us/graph/api/resources/insights-resourcevisualization?view=graph-rest-beta

OneDriveBusiness
Site
Mail
DropBox
Box
GDrive

Web 不是受支持的容器类型。它是一种资源可视化类型。站点是受支持的容器类型。

如果您转到 Graph Explorer,您可以看到它在我们的示例用户帐户上运行。 https://developer.microsoft.com/en-us/graph/graph-explorer?request=me/insights/used?$filter=ResourceVisualization/containerType eq 'Site'&method=GET&version=beta&GraphUrl=https://graph.microsoft.com

如果您登录 Graph Explorer 并运行相同的查询,您应该会在此处看到 OneDrive for Business 中任何活跃使用​​情况的结果。看到了吗?