0

Pnp 框架主要用于与 SharePoint 数据进行交互,但有一些方法可以通过 PowerShellGet-PnPPowerPlatformEnvironment示例从 PowerPlatform 获取流和应用程序,但这对我不起作用,因为我需要创建一个 azure 函数(.net 核心)才能工作用它。你知道任何可能有帮助的 c# 库吗?

请,关于这个主题的任何指导将不胜感激。

谢谢

4

1 回答 1

0

下面是使用 pnp 框架并通过 vs 代码部署的示例 C# azure 函数代码

public  class  DefaultFunctions
    {
    private  AppInfo  _appInfo;

private  readonly  IPnPContextFactory  _pnpContextFactory;
     

public  DefaultFunctions(AppInfo  appInfo, IPnPContextFactory  pnpContextFactory)

{

_appInfo = appInfo;

_pnpContextFactory = pnpContextFactory;

}

  

[FunctionName("GetLists")]

public  async  Task<IActionResult> Run(

[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "GetLists")] HttpRequestMessage  request, ILogger  log)

{

var  query = request.RequestUri.ParseQueryString();

var  siteUrl = query["siteUrl"];

var  tenantId = query["tenantId"];

var  clientSecret = new  SecureString();

     
foreach (char  c  in  _appInfo.ClientSecret) clientSecret.AppendChar(c);

 

var  onBehalfAuthProvider = new  OnBehalfOfAuthenticationProvider(_appInfo.ClientId, tenantId, clientSecret, () =>  request.Headers.Authorization.Parameter);

var  results = new  List<ListData>();

  

using (var  pnpContext = await  _pnpContextFactory.CreateAsync(new  System.Uri(siteUrl), onBehalfAuthProvider))

{

var  lists = pnpContext.Web.Lists.Load(l  =>  l.Id, l  =>  l.Title).ToList();

  

foreach (var  list  in  lists)

{

results.Add(new  ListData { Title = list.Title });

}

}
        
return  new  JsonResult(results);

}

}

有关完整信息,您可以参考Azure 函数中的 SharePoint 数据。

于 2022-02-24T10:19:46.583 回答