2014-04-12 2 views
0

업데이트 : 나는 그것을 알아 내고 아래에 답변을 게시했습니다.Box API V2를 사용하여 공유 링크를 만들 수 없습니다.

내가하려는 것은 모든 파일 속성을 업데이트하는 것입니다. 설명, 이름, 기타, 형식에 관계없이 403이 표시됩니다.

클라우드 앱의 Box API를 통해 파일을 공유 할 수 있도록 파일을 수정할 수 있어야합니다. V1에서 다른 사람의 코드를 업데이트하고 있지만 더 이상 사용할 수 없습니다 ... 많은 것을 시도했지만 대부분 403 금지 된 오류가 발생합니다.

잘 작동하는 OAuth2에는 문제가 없으며 파일과 폴더를 나열 할 수 있지만 수정할 수는 없습니다. 이 질문은 공유에 관한 것이지만 설명을 변경할 수도 없습니다. 상자 계정이 내 계정이고 내 관리자 자격 증명으로 인증합니다. 모든 제안을 부탁드립니다.

여기에 제가 사용하는 방법이 있습니다. fileId와 token을 전달하고 간결함을 위해 try/catch 등을 생략했습니다.

 string uri = string.Format("https://api.box.com/2.0/files/{0}", fileId); 
     string body = "{\"shared_link\": {\"access\": \"open\"}}"; 

     byte[] postArray = Encoding.ASCII.GetBytes(body); 

     using (var client = new WebClient()) 
     { 
      client.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); 
      client.Headers.Add("Authorization: Bearer " + token); 

      var response = client.UploadData(uri, postArray); 

      var responseString = Encoding.Default.GetString(response); 
     } 

감사합니다.

답변

1

좋아, 내 호머 심슨 순간 ...

UploadData는 POST입니다. 놓다. 여기에 해결책이 있습니다.

 string uri = String.Format(UriFiles, fileId); 
     string response = string.Empty; 
     string body = "{\"shared_link\": {\"access\": \"open\"}}"; 
     byte[] postArray = Encoding.ASCII.GetBytes(body); 

     try 
     { 
      using (var client = new WebClient()) 
      { 
       client.Headers.Add("Authorization: Bearer " + token); 
       client.Headers.Add("Content-Type", "application/json"); 
       response = client.UploadString(uri, "PUT", body); 
      } 
     } 
     catch (Exception ex) 
     { 
      return null; 
     } 
     return response; 
0

콘텐츠 유형을 'multipart/form-data'로 변경해보세요.

난 그냥에서 API를 보았다 : https://developers.box.com/docs/#files-upload-a-file

하고 서버가 다중 후 여기

을 기대처럼은 다중 데이터 게시에 오버 플로우 게시물을 스택되어 보이는 :

ASP.NET WebApi: how to perform a multipart post with file upload using WebApi HttpClient

+0

답장을 보내 주셔서 감사합니다. 예, 설명서를 읽었습니다. 내가하려는 것은 다음과 같습니다. curl https://api.box.com/2.0/files/FILE_ID \ -H "권한 부여 : 무기명 ACCESS_TOKEN"\ -d '{ "name": "새 이름. jpg "} '\ -X PUT, multipart/form-data 또는 application/json을 넣어도 403이 나옵니다. – CodeChops