在 Python 中使用 SharePoint Rest API 创建文档

问题描述

背景

我需要使用 SharePoint CSOM API 在 SharePoint 中基于模板创建文档。我需要返回类型是新创建的文档/驱动器项目/列表项目的详细信息。 Python 解决方案会很棒,但只有工作端点应该足以让我弄清楚其余部分。

我使用包 Office365-REST-Python-Client 来处理与 API 的交互

问题

我想使用函数 CreateDocumentFromTemplate,因为它具有列表项的返回类型。我在使用 SP.Folder 类型的 targetFolder 参数时遇到问题。无论我在 targetFolder 参数中放置什么,我在尝试执行此函数时总是收到以下错误消息,

'CreateDocumentFromTemplate 方法无法调用,因为其参数 targetFolder 不受支持'

这是否意味着 Parameter 已被弃用,因此该函数不可调用?还是我用错了?

尝试的解决方

我尝试了 SP.Folder 对象、文件夹路径、文件夹 url,但没有成功。而且我真的只是想在文档库的根文件夹中创建一个文件,所以这应该很简单。

下面的代码从另一个端点获取 SP.Folder 对象并将其传递到 CreateDocument 请求中。执行此操作会在响应中给我上面的错误消息

request1 = RequestOptions("{0}/_api/web/GetFolderByServerRelativeUrl('Shared%20Documents')".format(site_url))
folder = json.loads(ctx.execute_request_direct(request1).content)

request = RequestOptions("{0}/_api/lists/GetByTitle('Documents')/CreateDocumentFromTemplate".format(site_url))
request.data = {"fileName": "","targetFolder": folder,"templateUrl": template_url}
response = ctx.execute_request_direct(request)

当前的解决方法

我可以使用 CreateDocumentAndGetEditLink 基于模板创建文档,但是这仅返回一个编辑链接,这对我没有用。我嗅探了 SharePoint 在 Chrome 开发工具中进行的 API 调用,看起来这是从内容类型模板创建文档时调用函数

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)