能否通过Microsoft Graph API对OneDrive存储的照片进行标签增读删操作?
嘿,我来帮你理清这个问题!现在完全可以借助Microsoft Graph API对OneDrive中的照片执行标签的创建、读取和删除操作,你之前看到的2015年的UserVoice请求对应的功能早就被官方纳入支持范围啦。
下面给你拆解具体的操作方式:
1. 读取照片的标签
你可以调用GET /me/drive/items/{item-id}/labels接口,直接获取指定照片的所有标签信息。如果想批量获取某个文件夹下所有照片的标签,还可以在列表文件时加上$expand=labels参数,比如:
GET /me/drive/root/children?$expand=labels
这样返回的结果里就会包含该文件夹下所有文件(包括照片)的标签内容了。
2. 给照片添加/创建标签
要给照片打标签,用POST /me/drive/items/{item-id}/labels接口就行。请求体里直接指定你想添加的标签名称(如果是个人自定义标签,直接写名称就可以;如果是租户级的分类标签,需要确保标签已存在)。举个请求体的例子:
{ "name": "旅行回忆" }
发送这个请求后,目标照片就会被打上这个标签啦。
3. 删除照片的标签
删除标签的话,用DELETE /me/drive/items/{item-id}/labels/{label-id}接口,这里的label-id是你通过读取接口拿到的标签唯一ID。要是需要删除多个标签,要么逐个调用这个接口,要么也可以通过更新文件的labels集合来移除指定标签。
最后提个小注意点:如果是操作个人OneDrive的照片,记得申请Files.ReadWrite权限;如果是商业版或教育版的OneDrive,可能还要结合团队的分类标签权限配置,但个人场景下Files.ReadWrite基本够用啦。
内容的提问来源于stack exchange,提问作者Kevin

