2

最近一直在玩 Box.com 的 API 2.0 版。

根据 本文档的官方描述,我可以成功地将文件的“访问”设置为“打开”。

但是,如果我将其更改为“公司”或“合作者”,服务器会返回一个响应,说明未找到 HTTP 404,如下所示。

{
   "type":"error",
   "status":404,
   "code":"not_found",
   "help_url":"http:\/\/developers.box.com\/docs\/#errors",
   "message":"Not Found",
   "request_id":"609097837503b1dabc4d0c"
}

而且我无法弄清楚这条消息的“未找到”到底是什么意思。

这是我发送的请求正文,可以

{
   "shared_link":{
      "access":"Open",
      "permissions":{
         "download":true,
         "preview":true
      }
   }
}

这是返回我错误的请求正文

{
   "shared_link":{
      "access":"company",
      "permissions":{
         "download":true,
         "preview":true
      }
   }
}

我想知道这是我不应该做的事情,还是只是 api 中的一个错误。

提前感谢您的任何回复。

=================================

问题的一些更新。

恐怕这不是与案例相关的问题,尽管当我看到文档上的示例确实使用大写“Open”时。

在我的情况下,无论是使用“打开”还是“打开”,我都可以成功设置共享链接而没有任何问题。

但是,以下案例的行为对我来说有点奇怪。

案例 1:将权限中的两个属性(下载和预览)设置为 false返回 404(仅将其中一个设置为 true 可以正常工作)

{
   "shared_link":{
      "access":"Open",
      "permissions":{
         "download":false,
         "preview":false
      }
   }
}

在以下情况下,为了说明目的,我首先将“访问”设置为“打开”。

案例2:将“access”设置为“Collaborators”返回404 not found

案例 3:将“访问”设置为“合作者” 工作正常,但 json 响应未正确将“访问”显示为“合作者”

以下是案例3响应的摘录,“访问”仍然是“开放”

    shared_link": {
    "url": "https://www.box.com/s/03a47eb4b7dce0439d7f",
    "download_url": "https://www.box.com/shared/static/03a47eb4b7dce0439d7f.pdf",
    "password_enabled": false,
    "unshared_at": null,
    "download_count": 0,
    "preview_count": 0,
    "access": "Open",
    "permissions": {
        "download": true,
        "preview": true
    }

“公司”似乎与以前的案例相同,所以我在这里停止。

出于好奇,我将“访问”设置为文档中提到的字符以外的任意字符(我尝试了诸如“pp”、“c”、“test”之类的词),有趣的是服务器似乎都返回 200:OK 但 json响应仍然是“访问”:“打开”。比较混乱。

4

1 回答 1

3

原来“access”参数是区分大小写的。我们现在已经解决了这个问题,所以“打开”和“打开”等都可以工作。

事实证明,您还暴露了一些与文件共享有关的棘手的边缘情况。您可以设置一些安全设置,例如“文件夹属性:安全”设置为“仅限协作者共享链接”。

在此处输入图像描述

事实证明,如果您设置了此设置,API 调用将“访问”设置为“打开”,我们将返回 404。我们将努力使该错误信息更丰富(如 403,访问被拒绝)。

至于其余的情况。

案例 1:我们的 web-ui 限制您设置其中一些组合(例如 download=false 和 preview=false),因为当我们构建共享功能时,我们认为设置一个不可下载、非- 可预览的文件。

案例 2(和案例 3 的一部分):设置为“合作者”或“合作者”现在应该可以正常工作了。错误已修复。

案例 3:设置为“co”或“foo”默认为“Open”。我们现在已将其更改为返回错误(再次为 404)。

希望有帮助。

于 2012-08-27T18:45:24.303 回答