Box.com - 在使用As-User标头时没有从新的BoxFolder(apiConnection,id)获得结果

时间:2017-03-21 17:35:45

标签: sdk box

我正在使用As-User标头模拟Box.com上的一部分用户作为服务帐户,以便我可以访问他们的每个文件。

所以我去了:

      res.setRequestInterceptor((RequestInterceptor) request -> {
        request.addHeader("As-User", asUser);
        // Returning null means the request will be sent along with our new header.
        return null;
      });

其中asUser是一个用户ID,总是类似于7352356

现在,当我new BoxFolder(apiConnection, "0");时,我期待asUser文件的根目录。

但是我得到了

com.box.sdk.BoxAPIException: The API returned an error code: 401
    at com.box.sdk.BoxAPIResponse.<init>(BoxAPIResponse.java:70) ~[box-java-sdk-2.1.1.jar:?]
    at com.box.sdk.BoxJSONResponse.<init>(BoxJSONResponse.java:30) ~[box-java-sdk-2.1.1.jar:?]
    at com.box.sdk.BoxAPIRequest.trySend(BoxAPIRequest.java:423) ~[box-java-sdk-2.1.1.jar:?]
    at com.box.sdk.BoxAPIRequest.send(BoxAPIRequest.java:209) ~[box-java-sdk-2.1.1.jar:?]
    at com.box.sdk.BoxAPIRequest.send(BoxAPIRequest.java:184) ~[box-java-sdk-2.1.1.jar:?]
    at com.box.sdk.BoxFolder.getInfo(BoxFolder.java:161) ~[box-java-sdk-2.1.1.jar:?]
    at com.box.sdk.BoxFolder.getInfo(BoxFolder.java:23) ~[box-java-sdk-2.1.1.jar:?]

我一定是错过了一步?从这个链接我想我是:Using As-User in Box Request

1 个答案:

答案 0 :(得分:3)

好的,请参阅https://docs.box.com/reference#as-user-1

  

要为使用OAuth2的应用程序启用此功能,请使用您的API密钥提交支持服务单。要为使用OAuth2和JWT的应用程序启用此功能,请导航到开发人员控制台中的“高级功能”部分,并启用&#34;代表用户执行操作&#34;权限。

所以我猜我们的盒子管理员忘了勾选方框。

更新:

看起来你必须在更改权限后重新生成api密钥。如果您不这样做,新权限将不会生效。因此,如果您在访问框时遇到401错误,请回到框管理控制台,确保权限正确,删除旧的api密钥,创建一个新密码,然后再试一次。