微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 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 举报,一经查实,本站将立刻删除。