C# 框:使用AppUser用户令牌将协作添加到文件夹

C# 框:使用AppUser用户令牌将协作添加到文件夹,c#,box-api,box,C#,Box Api,Box,我正在构建我的组织后端系统和BOX之间的集成 其中一种情况是,当我的组织内发生特定事件时,需要在收件箱中创建一个文件夹,并将协作对象添加到该文件夹(将组连接到该文件夹) 我创建文件夹没有问题,但在尝试创建协作时,出现以下错误: Box.V2.Exceptions.boxexexception:Bearer realm=“Service”,error=“scope不足”,error\u description=“请求所需的权限高于访问令牌提供的权限。” 我正在使用.Net的BOX SDK与BOX进

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

其中一种情况是,当我的组织内发生特定事件时,需要在收件箱中创建一个文件夹,并将协作对象添加到该文件夹(将组连接到该文件夹)

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

Box.V2.Exceptions.boxexexception:Bearer realm=“Service”,error=“scope不足”,error\u description=“请求所需的权限高于访问令牌提供的权限。”

我正在使用.Net的BOX SDK与BOX进行交互

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

失败的代码是(C#):

当运行此代码,但将管理员令牌替换为从Box应用程序的编辑页面生成的开发者令牌时,它可以工作


感谢您的帮助

如果应用程序用户是您希望能够访问该文件夹的组的成员,则您不需要设置协作,用户只需具有访问权限即可。

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

解决办法是: 1.将应用程序配置为使用标准用户 2.创建具有管理权限的用户,API将使用该用户在框中执行活动。我把这个用户命名为“API用户”
3.按照OAuth2教程生成API.Net应用程序可以使用的访问令牌和刷新令牌,而不是为AppUser生成令牌。oAuth 2教程可以在

上找到,但这并不能真正帮助回答这个问题。。。如果没有明确给出,用户将如何“仅仅拥有访问权”?
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();