我正在开发支持多云的AirFile。现在,我将支持Office 365& OneDrive Pro for Business。我完成了其他操作:获取文件列表,复制,移动,上传,下载,删除。但是使用创建文件夹,它无法完成!!
作为Office 365文档APIS(http://msdn.microsoft.com/EN-US/library/office/dn605900(v=office.15).aspx#Folder4),我在发送POST请求时设置了数据:
- (NSData *)postMehodData
{
NSString *params = @"{'__metadata':{'type':'MS.FileServices.Folder'},Name:'%@'}";
params = [NSString stringWithFormat:params, [self.folderName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
return [params dataUsingEncoding:NSUTF8StringEncoding];
}
我还设置了请求' url作为API引用,但结果始终是HTTP 400代码。
我还引用了来自https://github.com/OfficeDev/Office-365-SDK-for-Android/blob/master/sdk/office365-files-sdk/src/com/microsoft/office365/files/FileClient.java的Android代码,但我不明白为什么它错了!
如果我能错过任何一个?谢谢任何支持。
答案 0 :(得分:1)
我还看到了Office365 API的“创建文件夹”功能的问题。我正在开发NodeJS(不使用任何提供的库),我能够完成API宣传的大部分功能。如果我是Office365帐户的全局管理员,则可以创建文件夹,但如果我是Office365环境中的典型用户,则无法创建文件夹。
我不会在Azure AD权限中看到任何内容专门用于"创建文件夹",最近的项目是"编辑或删除用户'文件"或"在所有网站集中创建或删除项目和列表"。
管理员和用户都会生成HTTP 200,但用户会收到“拒绝访问”错误。
我的猜测是"在所有网站集中创建或删除项目和列表"是一个管理功能,因为"用户"如果不能授予这些权限,则不会创建文件夹。虽然我本来期望"编辑或删除用户'文件"足以创建文件夹,因为我可以创建文件并将文件上传到已创建的文件夹。
我使用与__metadata相同的结构。
根据我的观察,创建文件夹有些不太正确,无论是基于权限还是未完全烘焙。
如果我能帮助澄清我的发现,我很乐意分享更多内容。现在很难找到在线寻求帮助,尽管微软应该在某些地方使用这些形式。
答案 1 :(得分:1)
Office 365 API仍处于预览状态。看起来您提到的问题已经解决,但请注意,在API正式发布之前,事情可能仍会发生变化。因此,不要在生产中使用它们。