gpt4 book ai didi

c# - 使用 Microsoft Graph API 获取 SharePoint Online 团队网站

转载 作者:行者123 更新时间:2023-11-30 15:16:55 25 4
gpt4 key购买 nike

我正在尝试访问组织的 SharePoint 团队网站。我正在使用 Microsoft Graph API,因为它是 Office 365 最完整的 API。我了解如何获取访问 token 以及如何使用它来发出请求。我知道它有效,因为我可以获得组列表,但是在获取所有团队站点时,我收到一条错误消息:

Code : invalidRequest    
Message : Cannot enumerate sites

这是我的代码。我正在控制台应用程序中对其进行测试。

class Program {
static void Main(string[] args) {
Program p = new Program();
var items = p.GetItems();
items.Wait();
foreach (var item in items.Result) {
Console.WriteLine(item.DisplayName);
}

Console.ReadLine();
}

public async Task<IGraphServiceSitesCollectionPage> GetItems() {
PublicClientApplication myApp =
new PublicClientApplication("CLIENT-ID-FROM-DEVELOPPER-CONSOLE");

//Gets an access token
AuthenticationResult authenticationResult =
await myApp.AcquireTokenAsync(
new string[] {
"user.read.all",
"sites.read.all",
"files.read.all",
"group.read.all",
"Directory.Read.All"
}).ConfigureAwait(false);

//Creates the client with the access token
GraphServiceClient graphClient = new GraphServiceClient(
new DelegateAuthenticationProvider(
async(requestMessage) => {
// Append the access token to the request.
requestMessage.Headers.Authorization =
new AuthenticationHeaderValue("bearer",
authenticationResult.AccessToken);
}));

//Requests the site objects
var sites = await graphClient.Sites.Request().GetAsync();

return sites;
}
}

我用 Google 搜索了很多,只找到了对我不起作用的解决方案。

最佳答案

错误消息向您准确描述了为什么这不起作用。

graphClient.Sites.Request().GetAsync() 的调用被转换为 HTTP 调用 https://graph.microsoft.com/sites ' 一个有效的 API 端点。

您需要提供一些额外的上下文,例如您要查找的站点。例如,要获取根站点,您可以调用:

graphClient.Sites["root"].Request().GetAsync();

如果您正在寻找团队网站,您可以使用该网站的路径:

await graphClient.Sites["root"].SiteWithPath("/teams/myawesometeam").Request().GetAsync();

有关其他 SharePoint 端点,请参阅 Graph SharePoint documentation .

关于c# - 使用 Microsoft Graph API 获取 SharePoint Online 团队网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48140431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com