Box API для создания корпоративного пользователя или группы, что приводит к недопустимому параметру

Я написал следующий код Java для создания корпоративного пользователя группы или коробки. Каждый раз он терпит неудачу с 400. После множества испытаний в формате ввода объекта JSON (больше двойных кавычек, одинарных кавычек, escape-символов и т. д.) мне удалось получить коды ошибок прямо из 400, 403, 404 и 409. В процесс, я также пытался использовать строку в качестве формата объекта json.

Наконец, я создал объект json и отправил его на сервер с помощью HttpUrlConnection. Но все равно не повезло. С аналогичным кодом и токеном доступа я смог получить пользователей/группы/коллаборации. Но никогда не удавалось создать пользователя/группу с помощью кода. Я также пробовал командную строку curl и там тоже застрял. Моим лучшим достижением было то, что я мог получить ошибку 403, используя команду curl, указывающую на запрещенные или недостаточные права. Однако обратите внимание, что я сгенерировал этот токен доступа с помощью учетных данных администратора корпоративного ящика и могу добавить пользователя/группу через пользовательский интерфейс ящика. Кроме того, с помощью кода, использующего указанный выше токен доступа, я смог выполнить 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!!!!");                    

person alevi.dcosta    schedule 13.12.2013    source источник


Ответы (1)


Приложения Box, использующие рабочий процесс OAuth 2.0, теперь поддерживают две области доступа к учетным записям:

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

Второй вариант, который кажется связанным с тем, что вы пытаетесь сделать, по умолчанию отключен. Вы включили его для своего приложения?

person John Hoerr    schedule 17.12.2013
comment
Привет, Джон, спасибо за добрый ответ. Извините за поздний ответ. Как вы упомянули, теперь я также включил приложение для управления предприятием. Но все равно получаю ответ на плохой запрос (400). - person alevi.dcosta; 02.01.2014
comment
Привет, Алеви, можешь опубликовать HTTP-трассировку запроса, который отправляется в Box? Это облегчит отладку проблемы. - person John Hoerr; 02.01.2014
comment
Привет, Джон, извините за поздний ответ, я установил флажки управления и предприятия в приложении, и благодаря вам аналог curl работает. Здесь команда curl: -curl --insecure api.box.com/2.0/groups -H Авторизация: Bearer AUTH-TOKEN -H Content-type: application/json -d {\name\: \family\} -X ПОСТ -в. Однако приведенный выше код продолжает выдавать ошибку 400. Я использую NetBeans в качестве IDE. Как я могу включить ведение журнала, как вы упомянули ?? - person alevi.dcosta; 08.01.2014
comment
Привет, Есть новости по этому поводу?? Из-за этого у нас блокировщик. Мы хотим, чтобы код Java работал независимо от того, работает команда curl или нет. Любая помощь приветствуется. Спасибо, Алеви - person alevi.dcosta; 13.03.2014