2016-06-07 11 views
2

Я создаю интеграцию между моими внешними системами организации и BOX.BOX: Добавить совместную работу с папкой, использующей токен пользователя AppUser

Один из сценариев заключается в том, что, когда в моей организации происходит определенное событие, необходимо создать папку в BOX и добавить к ней файлы совместной работы (соединить группы с этой папкой).

У меня нет никаких проблем, чтобы создать папку, но при попытке создать совместный я получаю следующее сообщение об ошибке:

Box.V2.Exceptions.BoxException: однонаправленная области = «Service», ошибка = "insufficient_scope ", error_description =" Запрос требует более высоких привилегий, чем предоставляется токеном доступа. "

Я использую BOX SDK для .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 = [email protected], 
     Id = groupId 
    }, 
    Role = "viewer" 
}; 
var api = client.CollaborationsManager; 
var task = api.AddCollaborationAsync(addRequest); 
task.Wait(); 

При выполнении этого кода, но вместо администратора токен с токен разработчика генерируется из Редактировать страницу Box Applicaiton это работает.

Любая помощь приветствуется

ответ

0

Если пользователь приложение является членом группы (ов), вы хотите, чтобы иметь возможность получить доступ к папке, то вам не нужно настроить совместную работу, пользователи должны просто иметь доступ.

+0

Это не помогает ответить на вопрос ... Как пользователи могут «просто иметь доступ», если это явно не указано? – Taegost

1

ОК, у меня было длинное обсуждение с технической командой BOX, и вот вывод: использование AppUser не является правильным выбором для моего сценария, потому что он ограничен только создаваемыми папками. Нельзя обойти его.

Решение: 1. Настроить приложение для использования стандартным пользователем 2. Создать пользователя с правами администратора, которые будут использоваться API для выполнения действий в BOX. Я назвал этого пользователя «Пользователь API» 3. Следуйте инструкциям oAuth 2, чтобы создать токен доступа и токен обновления, который может использовать приложение API .Net, вместо того, чтобы генерировать токен для AppUser. учебник oAuth 2 можно найти по адресу https://www.box.com/blog/get-box-access-tokens-in-2-quick-steps/