2016-06-07 1 views
2

조직 백엔드 시스템과 BOX 간의 통합을 구축 중입니다.BOX : AppUser 사용자 토큰을 사용하여 폴더에 공동 작업 추가

시나리오 중 하나는 조직 내에서 특정 이벤트가 발생하면 BOX에 폴더를 만들고 해당 폴더에 그룹을 추가 (그룹을 폴더에 연결)해야한다는 것입니다.

나는 폴더를 만들 수있는 아무런 문제가 없지만, 나는 다음과 같은 오류가 무엇입니까 협력 만들려고 할 때, 오류 = "insufficient_scope을 무기명 영역 ="서비스 "

Box.V2.Exceptions.BoxException을 ", error_description ="요청에 액세스 토큰이 제공 한 것보다 높은 권한이 필요합니다. "

.Net 용 BOX SDK를 사용하여 BOX와 상호 작용합니다.

내가 만든 BOX 응용 프로그램은 AppUser User Type을 사용하도록 지정되었으며 BOX에서 허용하는 모든 범위 ("Manage enterprise"제외)는 사용할 수 없습니다.

실패 코드는 (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(); 

이 코드를 실행하지만 개발자 토큰이 작동 박스 Applicaiton 페이지 편집에서 생성과 관리 토큰 교체. 응용 프로그램 사용자 그룹 (들) 당신은 당신이 협력을 설정할 필요가 없습니다 폴더에 액세스 할 수 있도록하려는의 구성원 인 경우

어떤 도움이

답변

0

을 감사, 사용자는해야 액세스 할 수 있습니다.

+0

에서 찾을 수 있습니다.이 질문에 대한 대답은 도움이되지 않습니다 ... 명시 적으로 주어지지 않으면 사용자는 "액세스 권한이 있습니까?" – Taegost

1

좋아요, BOX 기술 팀과 오랜 토론 시간을 가졌습니다. 결론은 다음과 같습니다. AppUser를 사용하는 것이 내 시나리오에 적합한 선택이 아닙니다. 왜냐하면 그것이 만든 폴더에만 제한되기 때문입니다. 그것을 무시할 방법이 없습니다.

해결 방법 : 1. 표준 사용자 을 사용하도록 응용 프로그램을 구성합니다. 2. BOX에서 API를 사용하여 관리 할 권한을 가진 사용자를 만듭니다. 이 사용자의 이름을 "API User"로 지정합니다. 3. oAuth 2 자습서를 따라 API .Net 응용 프로그램이 AppUser에 대한 토큰을 생성하는 대신 사용할 수있는 액세스 토큰과 새로 고침 토큰을 생성합니다. oAuth 2 자습서는 https://www.box.com/blog/get-box-access-tokens-in-2-quick-steps/