Box.com - 使用 As-User header 时未从 new BoxFolder(apiConnection, id) 获取结果

Box.com - not getting results from new BoxFolder(apiConnection, id) when using As-User header

我正在使用 As-User header 来模拟 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:?]

我一定是漏掉了一步是吗?由此 link 我认为我是:

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

To enable this functionality for applications using OAuth2, please file a support ticket with your API key. To enable this functionality for applications using OAuth2 with JWT, please navigate to the Advanced Features section in the developer console and enable the "Perform actions on behalf of users" permission.

所以我猜我们的邮箱管理员只是忘了选中该框。

更新:

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