Попробуйте самый простой и быстрый способ 
установки OnlyOffice

Создание пользователя через API.

Вопросы/проблемы по интеграции

Создание пользователя через API.

Сообщение tabarigen » Пт июн 05, 2015 7:33 am

Пробую создать пользователя через API таким образом.
Код: Выделить всё
<?php
#Массив с параметрами, которые нужно передать методом POST к API системы
$user=array(
  'userName'=>'********@mail.ru', #Ваш логин (электронная почта)
  'password'=>'********' #Хэш для доступа к API (смотрите в профиле пользователя)
);
 
 
#Формируем ссылку для запроса
$link='http://192.168.1.221/api/2.0/authentication';

$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($user));
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);

$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE); #Получим HTTP-код ответа сервера
curl_close($curl); #Завершаем сеанс cURL


$code=(int)$code;
$errors=array(
  301=>'Moved permanently',
  400=>'Bad request',
  401=>'Unauthorized',
  403=>'Forbidden',
  404=>'Not found',
  500=>'Internal server error',
  502=>'Bad gateway',
  503=>'Service unavailable'
);
try
{
  #Если код ответа не равен 200 или 204 - возвращаем сообщение об ошибке
  if($code>=400)
    throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undescribed error',$code);
}
catch(Exception $E)
{
  die('Ошибка: '.$E->getMessage().PHP_EOL.'Код ошибки: '.$E->getCode());
}
 
/**
 * Данные получаем в формате JSON, поэтому, для получения читаемых данных,
 * нам придётся перевести ответ в формат, понятный PHP
 */
$Response=json_decode($out,true);
print_r($Response['response']['token']);



#Формируем параметры запроса, описываем параметры пользователя которого хотим  добавить
$userdAdd = array('isVisitor' =>'false',
                  'email' => 'alimuradov05@ya.ru',
                  'firstname' => 'Mahmood',
                  'lastname' => 'Abbas',
                  'title'=> 'Tiger',
                  'location' => 'Irak',
                  'sex' => 'male',
                  'birthday' => '1989-05-13T06:30:00.0000000-07:00',
                  'worksfrom' => '2014-09-13T06:30:00.0000000-07:00',
                  'comment' => '89282000000'
 );

#Формируем ссылку для запроса
$linkPeople='http://192.168.1.221/api/2.0/people';

$headr = array('Content-type: application/json', 'Authorization: 4mWmJ5td7eXICAjj6fpXNj0m2U+RdC8EO8Zwh4ojHFTjHQYKjfaPN7Kidq6qclpqMSYRFBYc8/muXqq+CKdHvboMebFL+VB64YN4qvqTa9J7bKx3a2uIT+6/srpwhYCC', 'Host: 192.168.1.221');
$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0');
curl_setopt($curl,CURLOPT_URL,$linkPeople);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($userdAdd));
curl_setopt($curl,CURLOPT_HTTPHEADER, $headr);
curl_setopt($curl,CURLOPT_HEADER,false); 

$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE); #Получим HTTP-код ответа сервера
curl_close($curl);

$code=(int)$code;
$errors=array(
  301=>'Moved permanently',
  400=>'Bad request',
  401=>'Unauthorized',
  403=>'Forbidden',
  404=>'Not found',
  500=>'Internal server error',
  502=>'Bad gateway',
  503=>'Service unavailable'
);
try
{
  #Если код ответа не равен 200 или 204 - возвращаем сообщение об ошибке
  if($code>=400)
    throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undescribed error',$code);
}
catch(Exception $E)
{
  die('Ошибка: '.$E->getMessage().PHP_EOL.'Код ошибки: '.$E->getCode());
}
?>



Браузер на выходе выдает ошибку
4mWmJ5td7eXICAjj6fpXNj0m2U+RdC8EO8Zwh4ojHFTjHQYKjfaPN7Kidq6qclpqMSYRFBYc8/muXqq+CKdHvboMebFL+VB64YN4qvqTa9J7bKx3a2uIT+6/srpwhYCCОшибка: Internal server error Код ошибки: 500
tabarigen
 
Сообщения: 22
Зарегистрирован: Чт май 21, 2015 9:25 am

Re: Создание пользователя через API.

Сообщение AnaMih » Пт июн 05, 2015 2:56 pm

Скорее всего, ошибка выдается потому, что на портале уже есть пользователь с подобным email адресом.
Аватара пользователя
AnaMih
 
Сообщения: 630
Зарегистрирован: Пн авг 25, 2014 10:15 am

Re: Создание пользователя через API.

Сообщение tabarigen » Сб июн 06, 2015 6:55 am

Пробовал разные e-mail адреса.
Ошибка повторяется.
В логах сервера тоже пусто. Куда бы копнуть еще.
tabarigen
 
Сообщения: 22
Зарегистрирован: Чт май 21, 2015 9:25 am

Re: Создание пользователя через API.

Сообщение tabarigen » Пн июн 08, 2015 8:42 am

Странно ведет себя сервер.
вот такой код у меня создал пользователя через API. Пробовал на триальном портале https://mycopany.onlyoffice.eu.
Пользователь создается.
Код: Выделить всё
<?php
$url = 'https://mycomoany.onlyoffice.eu/api/2.0/authentication';
$params = array(
    'userName' => '-------@mail.ru', // в http://localhost/post.php это будет $_POST['param1'] == '123'
    'password' => '-------', // в http://localhost/post.php это будет $_POST['param2'] == 'abc'
);
$result = file_get_contents($url, false, stream_context_create(array(
    'http' => array(
        'method'  => 'POST',
        'header'  => array('Accept: application/json', 'Content-type: application/x-www-form-urlencoded'),
        'content' => http_build_query($params)
    )
)));
$obj=json_decode($result, true);
$token = $obj['response']['token'];
print_r($token);


#Добавляем пользователя
$urlAdd = 'https://mycopany.onlyoffice.eu/api/2.0/people';
#Формируем параметры запроса, описываем параметры пользователя которого хотим  добавить
$userdAdd = array('isVisitor' =>'false',
                  'email' => 'makhmood@ya.ru',
                  'firstname' => 'Mahmood',
                  'lastname' => 'Abbas',
                  'title'=> 'Tiger',
                  'location' => 'Irak',
                  'sex' => 'male',
                  'birthday' => '1989-05-13T06:30:00.0000000-07:00',
                  'worksfrom' => '2014-09-13T06:30:00.0000000-07:00',
                  'comment' => '89282000000'
 );

$addMember = file_get_contents($urlAdd, false, stream_context_create(array(
    'http' => array(
        'method'  => 'POST',
        'header'  => array('Accept: application/json', 'Content-type: application/x-www-form-urlencoded', 'Authorization: 9na7+RVlKU1at0aZm38UCRHE8Rp7W5Tqr9M4+OgFvQkVAUJiFRaWuFLrmQ1nqOvlZ0kTOYfcJGrNPvFs50Z2YfYiLHI1CAniNtJ8Wy6RJcYidhdv63GNJLbe5xi40Sza'),
        'content' => http_build_query($userdAdd)
    )
)));
var_dump($addMember);
?>


Попробовал таким же способом создать юзера на своем сервере. Выдается ошибка Internal server error Код ошибки: 500.
Сервер Ubuntu 14.04 onlyoffice ставил из репозитория.
При открытии портала из браузера все нормально отображается. Get запросы тоже отрабатываются.

Пробовал с CURL та же самая ошибка Internal server error Код ошибки: 500.


Руки кривые или есть недокументированные особенности??
tabarigen
 
Сообщения: 22
Зарегистрирован: Чт май 21, 2015 9:25 am

Re: Создание пользователя через API.

Сообщение tabarigen » Пн июн 08, 2015 9:38 am

опытным путем выясилось. Что данная ошибка выдается если пользователь с указанным e-mail уже зарегистрирован. В случае успешного создания юзверя выдается jSON-массив.

было бы хорошо конечно, если выдавалось уведомление что пользователь с таким e-mail уже существует. Кстати почему создаваемый пользователь не виден на портале в списке пользователей. Перейти на него можно только по ссылке профиля которую я вижу через GET API/2.0/PEOPLE. Можно ли сделать так, чтоб создаваемые пользователи уже создавались активированными.
tabarigen
 
Сообщения: 22
Зарегистрирован: Чт май 21, 2015 9:25 am

Re: Создание пользователя через API.

Сообщение AnaMih » Пн июн 08, 2015 11:52 am

Вопрос был передан в отдел разработки, как только будет принято решение, мы дадим Вам знать.
Аватара пользователя
AnaMih
 
Сообщения: 630
Зарегистрирован: Пн авг 25, 2014 10:15 am

Re: Создание пользователя через API.

Сообщение tabarigen » Пн июн 08, 2015 11:58 am

Кнопка удаления тоже неактивна почему то.
Вложения
2015-06-08 14-56-35 Люди - Люди - Google Chrome.png
2015-06-08 14-56-35 Люди - Люди - Google Chrome.png (43.93 КБ) Просмотров: 3948
tabarigen
 
Сообщения: 22
Зарегистрирован: Чт май 21, 2015 9:25 am

Re: Создание пользователя через API.

Сообщение Vortex28 » Пн июн 08, 2015 3:31 pm

Кнопка удаления пользователя будет активной только тогда, когда пользователь отмечен как неактивный.
Кстати, об этом более подробно описано в разделе помощи.
Ubuntu Server 14.04 x64 - 3 в 1(сервер+документы+почтовик)
Ubuntu Desktop 15.04 - Успешно (сервер+документы+почта)
Windows 7 x64 - Успешно (сервер+документы)
Windows 2012 R2 - Успешно (сервер+документы)
Ubuntu Desktop 14.04.1 - Успешно (сервер)
Vortex28
 
Сообщения: 27
Зарегистрирован: Ср мар 25, 2015 7:08 am

Re: Создание пользователя через API.

Сообщение Tech4 » Пн июн 05, 2017 5:32 am

А как установить пароль пользователя?
В документации по API нет секции "password".
Tech4
 
Сообщения: 2
Зарегистрирован: Чт май 18, 2017 4:00 am

Re: Создание пользователя через API.

Сообщение Ivan » Вт июн 06, 2017 9:16 am

Добрый день!
В Document Server используется метод аутентификации на основе JSON Web Token. Подробная документаци по нему в разделе Signature
Ivan
 
Сообщения: 413
Зарегистрирован: Ср окт 26, 2016 12:53 pm


Вернуться в API

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron