使用 REST 从 SharePoint 加载项访问外部列表

Posted

技术标签:

【中文标题】使用 REST 从 SharePoint 加载项访问外部列表【英文标题】:Access External List from SharePoint Add-In using REST 【发布时间】:2018-04-26 22:53:53 【问题描述】:

我在加载项中使用 SharePoint REST API 来访问列表数据。当我查询“正常”列表时,我会得到结果。当我尝试查询外部列表时,我收到 401 错误。当我尝试在浏览器中访问 REST URL 时遇到同样的错误:

http://add-in-6f1ecc432fad91.myaddins.com/sites/development/_api/lists/getbytitle('TestExternalList')/items

当我尝试在应用程序外部访问它时,它工作正常:

http://sharepoint/sites/development/_api/lists/getbytitle('TestExternalList')/items

我了解到您无法从此处的加载项访问外部内容类型:

http://toddbaginski.com/blog/accessing-bcs-external-data-from-an-app-for-sharepoint-2013/

所以我尝试根据网站打包我的 BCS 模型,但出现以下错误:

无法通过沙盒解决方案中的功能部署项目项“TestBDC”。

所以我的问题是,是否可以通过加载项访问外部列表?

我正在使用 SharePoint 2016。

【问题讨论】:

【参考方案1】:

听起来可能是权限问题。是否在应用权限中设置了 BCS 范围?

这是一篇有关设置安全性的信息的文章 https://docs.microsoft.com/en-us/sharepoint/dev/general-development/add-in-scoped-external-content-types-in-sharepoint

【讨论】:

是的,我已将应用设置为拥有完整的网站集权限(用于测试)。外部内容类型不是加载项范围,因此您提到的文章将无济于事。此外,我的外部内容类型不是 oData(它是 SQL),所以我不能使用加载项范围的内容类型。

以上是关于使用 REST 从 SharePoint 加载项访问外部列表的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 访问 Office365 Sharepoint REST 端点(适用于 Python 的 Office365 Sharepoint REST 客户端)

Sharepoint 授权令牌在 REST api 中的使用

使用 rest api 在 SharePoint 组中添加用户不起作用

当文件名中有#符号时,Sharepoint REST API GetFileByServerRelativeUrl

使用 REST 获取 SharePoint 视图项

从 Sharepoint 列表到 Azure SQL 仓库的增量加载