如何通过 REST API 在另一台服务器上为 Sharepoint 2013 和 Sharepoint Online 运行的脚本中更新 SharePoint 列表?

Posted

技术标签:

【中文标题】如何通过 REST API 在另一台服务器上为 Sharepoint 2013 和 Sharepoint Online 运行的脚本中更新 SharePoint 列表?【英文标题】:How do I update a SharePoint list via REST API in a script ran on another server for Sharepoint 2013 an also Sharepoint Online? 【发布时间】:2018-11-04 10:40:36 【问题描述】:

我需要通过按计划运行的脚本远程更新共享点列表中的数据。我们目前正在使用 sharepoint 2013 基础,但将在 6 个月左右转移到 sharepoint 在线。我想知道如何通过 REST api 为 2013 on prem 和 online 版本执行此操作。我很难理解所有不同的身份验证模型、sharepoint 产品、可用的 api、框架等,当阅读 MSDN 上的文档时,我无法确定哪个与 sharepoint 的哪个版本等有关。无论如何,到目前为止我考虑或 2013 on prem sharepoint 我应该使用高信任证书身份验证选项,以便我的脚本通过证书进行身份验证。我是否需要为脚本创建一个加载项以将其注册为将与其余 api 对话的应用程序?我不确定的原因是 sharepoint 本身从来不需要调用我的脚本,它不是显示在 sharepoint 上的 webpart 或页面或 antyhing,所以我有点迷失了。

至于如何将数据推送到共享点在线列表中,我假设我必须将脚本注册为提供商托管的加载项,并通过 Azure ACS 服务器使用 OAuth2 进行身份验证。

这听起来是实现我的目标的最佳方式吗?我是在正确的轨道上还是他们是一个更简单的选择?无论如何我可以在脚本中使用 Active Directory 用户帐户来发出经过身份验证的请求,而不必创建证书信任和创建插件等?


更新:

这里有一些关于我正在尝试做的事情的更多信息...... 我想开始的项目将是一个 Node 或 php 脚本,它在单独的服务器上运行并从第三方源提取数据,对其进行计算,然后将结果推送到一些 Sharepoint 列表中。然后每晚按计划运行此程序,以使 Sharepoint 列表保持最新。除了开始使用 Sharepoint,我什么都知道;基本如何建立连接和认证。

id 喜欢做的是从 Node 或 PHP 访问列表和库的 REST api,这些显然会在 Sharepoint 外部运行。我只是不明白如何开始。我的理解是有 Sharepoint 托管应用程序(可以访问 SP api 的客户端 javascript)和提供商托管应用程序(本质上是另一个 Web 应用程序的 iFrame)。因此,在这两个中,我正在查看提供商托管,但是提供商托管的应用程序是否仅在调用时运行?他们是否需要提供前端以在 iframe 中显示?我的项目只需要在一夜之间将数据推送到列表中。所以我需要将项目注册为提供商托管的应用程序吗?或者我该如何开始?然后我相信应用程序模型是 2013 年的 Sharepoint 编程方式,而新的 2016 年/在线方式是 Sharepoint 框架 (SPFX)。但是我看到的唯一例子是客户端应用程序。第二个项目 id 要做的是制作一个客户端应用程序,它将从项目 1 中获取列表中的数据,并使用 react 以某些方式动态显示这些数据。所以我很乐意知道从哪里开始项目 2,我只是直接开发一个使用 SPFX 的客户端反应应用程序。但是我完全坚持启动项目 1。我从哪里开始项目 1?我有哪些选择?

【问题讨论】:

【参考方案1】:

据我了解您的问题,您需要从计划更新您的本地列表,稍后您将在线更新您的共享点中的列表。

您可以创建一个提供商托管的应用程序,并通过配置轻松切换您的目的地。 或者你可以想出新的方法来做到这一点。您可以使用 Node JS 计时器服务,稍后将其插入到您的 on prem usign rest api 中,相同的代码将适用于在线您只需要更改目的地。

目前,我们也在使用 Node.js 来处理它。下面是在nodejs中创建定时器的简单代码。

它是做什么的,它从文件和电子邮件中读取凭据给用户。它只是一个简单的代码,可以用来插入到 SP 列表中使用签名 rest api。 https://github.com/halfice/Node-JS-Timer-SharePoint/blob/master/app.js

此外,如果您可以分享您想做的事情的图片会更清楚

【讨论】:

您好,感谢您回复我。如果您可以看一下,我已经在我原来的问题中添加了更多信息?谢谢!

以上是关于如何通过 REST API 在另一台服务器上为 Sharepoint 2013 和 Sharepoint Online 运行的脚本中更新 SharePoint 列表?的主要内容,如果未能解决你的问题,请参考以下文章

通过DB Link在另一台服务器上创建用户的语法

从 https rest api 调用 http rest api 错误 502

Safari在另一台服务器上调用API时拒绝cookie

如何在另一台服务器上运行脚本[重复]

通过 REST 在两个不同服务器上的两个数据库之间接收数据

如何在 Node Js 上为 Rest API 创建一个干净的架构