我的应用程序使用OneDrive API功能,允许未经授权的用户使用旧的API请求获取共享OneDrive文件的缩略图:
https:// apis.live.net/v5.0/skydrive/get_item_preview?type=normal&url=[shared_link_to_OneDrive_file]
此功能现已中断(任何此类链接都会返回XMLHttpRequest连接错误0x2eff) . 我的Windows应用商店应用无法再提供此功能 .
任何人都可以尝试检查它,链接到共享的OneDrive文件:
链接到共享OneDrive文件的预览图像(根据旧的OneDrive API "Displaying a preview of a OneDrive item" - https:// msdn.microsoft.com/en-us/library/jj680723.aspx):
https://apis.live.net/v5.0/skydrive/get_item_preview?type=normal&url=https%3A%2F%2Fonedrive.live.com%2Fredir%3Fresid%3DAABF0E8064900F8D!27202%26authkey%3D!AJTeSCuaHMc45eY%26v%3D3%26ithint%3Dphoto%252cjpg生成错误:SCRIPT7002:XMLHttpRequest:网络错误0x2eff
СurrentOneDriveAPI缩略图功能:
GET / drive / items / /缩略图/ /
仅适用于授权用户,无法为未经授权的用户提供共享OneDrive文件的缩略图访问权限
Windows应用商店应用如何让未经授权的用户使用当前的OneDrive API获取共享OneDrive文件(视频等)的缩略图?有任何想法吗?
2 回答
您需要调用以下API:
GET /drive/items/{item-id}/thumbnails/{thumb-id}/{size}/content
此调用需要使用授权并将重定向返回到 cache-safe 缩略图位置 . 然后,您可以使用此新网址为未经身份验证的用户提供缩略图 .
例如
请求:
响应:
您现在可以使用
Location
Headers 中的链接访问缩略图而无需登录 . 仅当文件内容发生更改时,此URL才会更改 .您可以在文档here中阅读更多内容 .
我刚想通了 . 它基于Microsoft本文中的信息...
https://docs.microsoft.com/en-ca/onedrive/developer/rest-api/api/driveitem_list_thumbnails?view=odsp-graph-online
...查看“列出DriveItems时获取缩略图”部分 . 它显示了来自调用的相关JSON返回结构,例如:
GET / me / drive / items / / children?$ expand =缩略图
基本上,JSON返回结构为每个缩略图格式提供了字符串URL . 然后创建URLSession以上传这些URL(一旦你将它们从String转换为URL)
以下是使用Swift(Apple)的代码摘录:
...当然你需要有正确的“accessToken”(如上所示),但你还必须为URLSession编写通用的回调函数,即:
干杯,安德烈亚斯