Задать вопрос
@IT-sorce

Как мне авторизоваться через c api php?

Запрос в EWA на аутентификацию
Аутентификация - https://api.ewa.ua/#api-/user/login. Необходимо будет добавить в Еву пользователя, под которым будут осуществляться обращения к системе.

Пример запроса на аутентификацию:

curl -v --request POST \
--url https://web.ewa.ua/ewa/api/v9/user/login \
--header 'content-type: application/x-www-form-urlencoded' \
--data email=test@ewa.ua \
--data password=9b5b9d4fdcd4a2ece5400fa994a54665ceb522bb
Пароль необходимо передавать в хэшированном виде. Сгенеринуйте хэш пароля через сайт www.sha1-online.com или командой в консоли Linux/Mac:
echo -n Ваш_Пароль | sha1sum

Из json'а ответа необходимо взять значение параметра SESSIONID, создать cookie с параметром
JSESSIONID и значением, которое передано в SESSIONID. В последующих запросах необходимо добавлять cookie с соответствующим значением.
К примеру, если при POST-запросе получили json:
. . .
"SESSIONID":"D5A2ED4E36A46538FD3516F85C18ХХХХ"
. . .

то cookie будет
JSESSIONID=D5A2ED4E36A46538FD3516F85C18ХХХХ

Время жизни сессии 15 минут!
Если от последнего обращения к серверу прошло больше времени, то JSESSION невалидный.

Не работает
<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://web.ewa.ua/ewa/api/v12/user/login",
  CURLOPT_HTTPHEADER => "content-type: application/x-www-form-urlencoded", 
  CURLOPT_EMAIL => "pocta",
  CURLOPT_PASSWORD => "pass",
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>
  • Вопрос задан
  • 155 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
И правильно не работает.
CURLOPT_CUSTOMREQUEST - здесь не нужна, используйте CURLOPT_POST.
CURLOPT_HTTPHEADER - не обязательна, это значение задаётся по умолчанию для POST-запросов.
CURLOPT_EMAIL - такой опции вообще не существует.
CURLOPT_PASSWORD - опция относится к HTTP-авторизации и здесь совсем не нужна.
Вместо этих двух нужна правильно установленная опция CURLOPT_POSTFIELDS.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы