如何使用Microsoft Graph Api显示来自用户OneDrive的文件

时间:2017-09-21 09:23:18

标签: microsoft-graph onedrive

我目前正在使用OneDrive API从用户OneDrive获取文件。

我需要能够动态显示OneDrive中的文件,具体取决于用户点击的元素。

我知道我可以进入我的OneDrive并获得一个可用于显示OneDrive文件的嵌入式链接,但这不是我需要的。我尝试将嵌入式链接与数据绑定结合使用,但链接需要一个独特的初始嵌入式链接授权令牌。

基本上我希望用户点击与OneDrive元素相对应的元素(例如filepdf)。然后,文件将显示在页面上的IFrame中。

2 个答案:

答案 0 :(得分:0)

对于Office文档,您可以使用DiveItem中的webUrl属性。此URL将在与该文件类型关联的编辑器中打开文档。例如,导航到webUrl文件的.ppt将在PowerPoint Online中打开该文档。

对于其他文件,webUrl属性只是指向文件本身。导航到该地址时会发生什么情况取决于文件类型和已安装的应用程序。导航到.pdf通常会在浏览器中显示该文件(大多数浏览器支持PDF),但其他文件可能没有应用程序,因此只需下载到本地计算机。

您可以将网址打开到iframe,但要小心确保您的用户界面占用最少的屏幕区域。还要确保您的页面具有响应性,以便用户可以在较小的窗口和/或移动设备中使用该应用程序,而您的UI不会占用太多画布,以至于他们无法查看/使用文档本身。

答案 1 :(得分:0)

这里有一个在onedrive中创建编辑链接的例子,你可以改变嵌入的编辑类型来获得你想要的东西,这是在php利用laravel,图api与文档https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/item_createlink

公共函数getEditableEmbeed($ itemid){

    $this->refresh();
     $file = $this->getGraph()->createRequest("POST", "/me/drive/items/".$itemid."/createLink")->attachBody('{ "type": "edit", "scope": "anonymous"}')->execute();
     return $file;
}