Нариман
Новичок
Здравствуйте друзья. Помогите пожалуйста осилить создание юзера на портале используя API.
Описание API тут.
При помощи гугла накидал следующее:
На выходе получаю.
Ребят я два дня уже маюсь. Что я делаю не так???
Описание API тут.
При помощи гугла накидал следующее:
Код:
<?php
#Формируем ссылку для запроса
$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,'userName=********@mail.ru&password=********');
curl_setopt($curl,CURLOPT_HTTPHEADER, array('Accept:application/json', 'Host: 192.168.1.221', 'Accept-Encoding: gzip'));
curl_setopt($curl,CURLOPT_HEADER, false);
$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
curl_close($curl); #Завершаем сеанс cURL
/**
* Данные получаем в формате JSON, поэтому, для получения читаемых данных,
* нам придётся перевести ответ в формат, понятный PHP
*/
$Response=json_decode($out,true);
$token = $Response['response']['token'];
print_r($token);
#Формируем параметры запроса, описываем параметры пользователя которого хотим добавить
$userdAdd = array('isVisitor' =>'false',
'email' => '[email protected]',
'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[0] = 'Accept:application/json';
$headr[1] = 'Authorization:4mWmJ5td7eXICAjj6fpXNj0m2U+RdC8EO8Zwh4ojHFTjHQYKjfaPN7Kidq6qclpqMSYRFBYc8/muXqq+CKdHvboMebFL+VB64YN4qvqTa9J7bKx3a2uIT+6/srpwhYCC';
$headr[2] = '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,true);
$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());
}
?>
На выходе получаю.
То есть получаю токен, теперь надо вставить его в заголовок и отправить POST запрос с параметрами.4mWmJ5td7eXICAjj6fpXNj0m2U+RdC8EO8Zwh4ojHFTjHQYKjfaPN7Kidq6qclpqMSYRFBYc8/muXqq+CKdHvboMebFL+VB64YN4qvqTa9J7bKx3a2uIT+6/srpwhYCCОшибка: Bad request Код ошибки: 400
Ребят я два дня уже маюсь. Что я делаю не так???