2013-12-13 23 views
0

我写了以下java代码来创建组或企业用户。每次都会失败,400.通过JSON对象输入格式(更多双引号,单引号,转义字符等)的大量试验,我设法从400,403,404和409获得错误代码。该过程中,我也尝试使用字符串作为json对象格式。Box api创建企业用户或组导致无效的参数

最后,我创建了一个json对象,并使用HttpUrlConnection将它发送到服务器。但仍然没有运气。使用类似的代码和访问令牌,我可以获得用户/组/合作伙伴。但从来没有能够通过代码创建用户/组。我也尝试了curl命令行,那里也被卡住了。我最大的成就是使用curl命令可以得到403错误,表明权限被禁止或权限不足。但是,请注意,我通过企业邮箱管理员凭据生成了此访问令牌,并且可以通过框UI添加用户/组。此外,通过使用上述访问令牌的代码,我已能够执行GET。有人可以指出我在下面的代码中缺少的东西吗?

URL url = new URI("https", "www.box.com", "/api/2.0/groups", null).toURL(); 
JSONObject jobj = new JSONObject(); 
jobj.put("name", "abcdef1"); 
HttpURLConnection urlConn = (HttpURLConnection)url.openConnection(); 
urlConn.setDoOutput(true); 
urlConn.setDoInput(true); 
urlConn.setRequestMethod(method) 
urlConn.setRequestProperty("Authorization", "Bearer " + accessToken); 
urlConn.setRequestProperty("Content-Type", "application/json");   
DataOutputStream wr = new DataOutputStream(urlConn.getOutputStream()); 
wr.writeUTF(URLEncoder.encode((jobj.toJSONString(),"UTF-8")); 
wr.flush(); 
wr.close(); 
if (urlConn.getResponseCode() == 200) 
{ 
//Read buffer  
} 
else 
    throw new Exception("Reaches HERE!!!!");      

回答

0

盒应用使用OAuth 2.0用户的工作流程现在支持的帐户访问两个作用域:

1. Read and write all files and folders 
2. Manage an enterprise 

第二个方案 - 这似乎与你正在试图做的是什么 - 是禁用默认。你是否为你的应用程序启用了它?

+0

你好John,谢谢你的回复。回复晚了非常抱歉。正如你所提到的,我现在已经启用了管理企业的应用程序。但是,我仍然得到错误的请求响应(400)。 –

+0

嗨,Alevi,你可以发送正在发送到Box的请求的HTTP跟踪?这将使调试更容易。 –

+0

嗨,约翰,对于迟到的回复感到抱歉,我已经启用了应用程序中的“管理和企业复选框”,并感谢你,卷曲对手正在工作。这里的curl命令是:-curl --insecure api.box.com/2.0/groups -H“Authorization:Bearer AUTH-TOKEN”-H“Content-type:application/json”-d“{”\“name” \“:”\“family”\“}”-X POST -v。但是,上面的代码继续给出错误400.我正在使用NetBeans作为IDE。我如何启用你所提到的日志? –