【问题标题】:How can I use the Box Java SDK to create a shared link without specifying the share type?如何在不指定共享类型的情况下使用 Box Java SDK 创建共享链接?
【发布时间】:2013-11-22 23:26:31
【问题描述】:

在 Box API v1 中,可以请求为文件或文件夹创建共享链接,而无需关心需要什么样的共享。事实上,不可能要求特定类型的共享 - 您只需使用 public_share 方法并传入目标类型(文件/文件夹)和目标 ID,以及可选的共享密码。例如,在企业帐户中,如果不允许公共链接,这可能会导致最大访问级别为“公司”或“合作者”。

使用 Box API v2,根据文档 here,您需要指定必须为“open”、“company”或“collaborators”的访问参数。

问题是,使用错误的类型可能会导致共享失败。例如,在仅允许协作者的文件夹/帐户中,如果我要求“打开”共享,则会收到 400 错误。

我真正想要的是获得与用户单击 Box 网站中的“共享”链接完全相同的结果。也就是说,它应该启用文件共享,但适当地默认级别。

有没有办法在 v2 中做到这一点,而无需管理员告诉我们他们对我们创建的共享链接的“首选”访问级别?我正在使用 Java SDK,如下所示:

BoxItemRequestObject req = BoxItemRequestObject.createSharedLinkRequestObject(BoxSharedLinkRequestObject.createSharedLinkRequestObject("open"));

BoxItem item = itemsManager.createSharedLink(<ID>, req, BoxResourceType.FILE);

谢谢,

本·吉尔伯特

Smartsheet.com

【问题讨论】:

    标签: box-api


    【解决方案1】:

    只需设置对空集的访问权限{}

    所以你的请求应该是这样的:

    {"shared_link": {}}
    

    【讨论】:

    • 我忘了提到我使用的是 Box Java SDK。我修改了主题并编辑了我最初的问题以反映这一点。此外,我想出了如何让它发挥作用,请参阅下面的答案。
    【解决方案2】:

    我想出了如何使这项工作。我需要在创建 BoxSharedLinkRequestObject 时将访问权限设置为 null,如下所示:**

    BoxItemRequestObject req = BoxItemRequestObject.createSharedLinkRequestObject(BoxSharedLinkRequestObject.createSharedLinkRequestObject(null));
    

    这不会产生与推荐的完全相同的 JSON (shared_link: {}),但它确实会产生显然等效的 JSON:shared_link: { access: null }。我想不出任何方法来使用 SDK 生成一个空的 shared_link 对象——我要么必须有一个空的 shared_link(根本不起作用),要么有一些访问字段的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      • 2011-04-10
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      相关资源
      最近更新 更多