【问题标题】:Create a folder in Office 365 API - Object C在 Office 365 API 中创建文件夹 - 对象 C
【发布时间】:2014-04-12 08:29:38
【问题描述】:

我正在开发支持多云的 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 代码,但我不明白为什么会出错!

如果我可以错过任何东西?感谢大家的支持。

【问题讨论】:

    标签: office365


    【解决方案1】:

    我还发现 Office365 API 的创建文件夹功能存在问题。我正在使用 NodeJS 进行开发(不使用任何提供的库),并且能够执行 API 所宣传的大部分功能。如果我是 Office365 帐户的全局管理员,我可以创建文件夹,但如果我是 Office365 环境中的典型用户,则不能。

    我在 Azure AD 权限中看不到任何专门针对“创建文件夹”的内容,最接近的项目是“编辑或删除用户的文件”或“在所有网站集中创建或删除项目和列表”。

    管理员和用户都导致 HTTP 200,但用户收到拒绝访问错误。

    我的猜测是“在所有网站集中创建或删除项目和列表”是一项管理功能,并且由于“用户”无法授予这些权限,因此不会创建文件夹。虽然我希望“编辑或删除用户的文件”足以创建文件夹,因为我可以创建文件并将文件上传到已经创建的文件夹。

    我对 __metadata 使用与上面相同的结构。

    根据我的观察,无论是基于权限还是未完全烘焙,“创建文件夹”都有一些不太正确的地方。

    如果我能帮助澄清我的发现,我很乐意分享更多信息。现在在线寻求帮助是不可能的,尽管微软应该在这些表格的某个地方。

    【讨论】:

    • 感谢您的回答。我想我没有为 HTTP 标头设置“Content-Type”,也许是这个原因!现在,我设置 Content-Type 标头的值后就可以了。
    • 我也能够让它为用户工作。我去了myapps.microsoft.com 并删除了该用户对该应用程序的权限,然后再次登录。要么修复它,因为我在用户第一次授权应用程序时没有正确设置权限 - 或者 - 微软已经修复了一些背景问题。 Create Folder 的一切都在这里正常工作。喜欢新的 API!
    【解决方案2】:

    Office 365 API 仍处于预览阶段。您提到的问题似乎已经解决,但请注意,在 API 正式发布之前,情况可能仍会发生变化。因此,暂时不要在生产中使用它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多