在Box API v1中,可以请求为文件或文件夹创建共享链接,而无需关心需要何种共享。事实上,不可能要求特定类型的共享 - 您只使用了public_share方法并传入了目标类型(文件/文件夹)和目标ID,以及可选的共享密码。例如,在企业帐户中,如果不允许公共链接,这可能会导致最大访问级别为“公司”或“协作者”。
使用Box API v2,根据文档here,您需要指定必须为“开放”,“公司”或“协作者”的访问参数。
问题是,使用错误的类型可能会导致共享失败。例如,在只允许协作者的文件夹/帐户中,如果我要求“开放”共享,我会收到400错误。
我真正想要的是获得与用户点击Box网站中的“共享”链接完全相同的结果。也就是说,它应该为文件启用共享,但是适当地默认该级别。
有没有办法用v2执行此操作,而管理员不必告诉我们他们为我们创建的共享链接的“首选”访问级别?我正在使用Java SDK,如下所示:
BoxItemRequestObject req = BoxItemRequestObject.createSharedLinkRequestObject(BoxSharedLinkRequestObject.createSharedLinkRequestObject("open"));
BoxItem item = itemsManager.createSharedLink(<ID>, req, BoxResourceType.FILE);
谢谢,
本·吉尔伯特Smartsheet.com
答案 0 :(得分:0)
只需设置对空集{}
的访问权限即可所以你的请求看起来像这样:
{"shared_link": {}}
答案 1 :(得分:0)
我想出了如何使这项工作。我需要在创建BoxSharedLinkRequestObject时设置null的访问权限,如下所示:**
BoxItemRequestObject req = BoxItemRequestObject.createSharedLinkRequestObject(BoxSharedLinkRequestObject.createSharedLinkRequestObject(null));
这不会产生与推荐的{(shared_link: {}
)完全相同的JSON,但它确实产生明显等效的JSON:shared_link: { access: null }
。我无法想出使用SDK生成空的shared_link对象的任何方法 - 我要么必须有一个null shared_link(根本不起作用)或者访问字段的某个值。