c# - BOX:使用 AppUser 用户 token 将协作添加到文件夹

标签 c# box-api box

我正在构建我的组织后端系统和 BOX 之间的集成。

其中一个场景是,当我的组织内部发生某些事件时,需要在 BOX 中创建一个文件夹并将协作对象添加到该文件夹​​(将组连接到该文件夹​​)。

我创建文件夹没问题,但在尝试创建协作时出现以下错误:

Box.V2.Exceptions.BoxException: Bearer realm="Service", error="insufficient_scope", error_description="请求需要比访问 token 提供的更高的权限。"

我正在使用 BOX SDK for .Net 与 BOX 交互。

我在 BOX 中创建的应用程序被指定为使用 AppUser 用户类型,并且我提供了 BOX 允许我的所有范围(除禁用的“管理企业”之外的所有范围)。

失败的代码是(C#):

var privateKey = File.ReadAllText(Settings.JwtPrivateKeyFile);
var boxConfig = new BoxConfig(Settings.ClientID, Settings.ClientSecret, Settings.EnterpriseID, privateKey, Settings.JwtPrivateKeyPassword, Settings.JwtPublicKeyID);
var jwt = BoxJWTAuth(boxConfig);
var token = jwt.AdminToken();
var client = jwt.AdminClient(token);

var addRequest = new BoxCollaborationRequest(){
    Item = new BoxRequestEntity() {
       Id = folderId,
       Type = BoxType.folder
    },
    AccessibleBy = new BoxCollaborationUserRequest(){
       Type = BoxType.@group,
       Id = groupId
    },
    Role = "viewer"
}; 
var api = client.CollaborationsManager;
var task = api.AddCollaborationAsync(addRequest);
task.Wait();

当运行此代码但将 Admin Token 替换为从 Box Applicaiton Edit Page 生成的 Developer Token 时,它起作用了。

感谢任何帮助

最佳答案

好的,我与 BOX 技术团队进行了长时间的讨论,得出的结论是:使用 AppUser 不是我的方案的正确选择,因为它仅限于它创建的文件夹。没有办法绕过它。

解决方法是: 1.配置应用程序使用标准用户 2. 创建具有管理权限的用户,API 将使用该用户在 BOX 中执行事件。我将此用户命名为“API 用户” 3. 按照 oAuth 2 教程生成 API .Net 应用程序可以使用的访问 token 和刷新 token ,而不是为 AppUser 生成 token 。 oAuth 2 教程可以在 https://www.box.com/blog/get-box-access-tokens-in-2-quick-steps/ 找到

关于c# - BOX:使用 AppUser 用户 token 将协作添加到文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37674381/

相关文章:

c# - 新的 Xamarin.Forms CollectionView 不允许多重预选

c# - 如何在不安装的情况下在 WPF 应用程序中包含外部字体

java - 使用 Java 批量上传到 Box*

css - 不确定如何使 CSS 框定位相对于调整大小/缩放

algorithm - 找到与给定点相交的所有边界框(使用树结构)

html - 如何创建类似于带边框的表格的 div 元素

c# - C#中如何获取与文件扩展名关联的推荐程序

c# - 尝试为文件 <FILE> 附加自动命名的数据库失败。存在同名数据库

box-api - 如何在没有 Box 授权页面的情况下获取访问 token

javascript - 发出 HTTP 请求时出现 Access-Control-Allow-Origin 错误