OneDrive云提供了一种功能,该功能可通过内部可公开访问的URL获取嵌入式iFrame标签。 我正在尝试使用Python OneDrive SDK
实现相同的目的文档页面上显示了各种功能,例如上载,下载,重命名文件等。 我要在这里实现的目标是创建一个嵌入式iFrame并作为响应来获取它。像this之类的东西。
SDK的一个类中有一个名为create_link的函数。该函数位于存在诸如upload
之类的其他函数的同一类中。 onedrivesdk/request/item_request_builder.pyitem_builder_request.py
还有一个type
参数可以使用。我相信embed
是我们将通过的论点。
但是,当我执行client.item(drive='me', id='fileid').create_link('embed')
时,其结果与在this页上的Graph API时所显示的结果不同。
我该怎么办?
我的目的是基本上获得一个公共URL到我通过其上传的Excel工作表。 python代码。此URL不应要求登录。
def create_link(self, type):
"""Executes the createLink method
Args:
type (str):
The type to use in the method request
Returns:
:class:`ItemCreateLinkRequestBuilder<onedrivesdk.request.item_create_link.ItemCreateLinkRequestBuilder>`:
A ItemCreateLinkRequestBuilder for the method
"""
return ItemCreateLinkRequestBuilder(self.append_to_request_url("action.createLink"), self._client, type)
答案 0 :(得分:1)
在您的示例中,缺少post
方法,该方法基本上向服务器提交了POST请求。
因此,用于创建嵌入链接的查询:
POST /me/drive/items/{item-id}/createLink
Content-Type: application/json
{
"type": "embed"
}
可以通过Python OneDrive SDK
执行,如下所示:
result = client.item(drive='me', id=item_id).create_link("embed").post()
print(result.link.web_url)
其中item_id
是驱动器项目的ID