Я пытаюсь использовать JIRA REST API с PHP. Когда я копирую URL ниже и вставляю его прямо в браузер, он работает нормально. Возникшая проблема возвращается как json.
Но с кодом ниже это не работает. Я получаю Несанкционированный (401) как ответное сообщение. Да, я проверил и дважды проверил, что учетные данные действительны. Это мой код:
$username = 'username';
$password = 'psw';
$url = "https://mycompany.atlassian.net/rest/api/2/issue/XXX-123";
$curl = curl_init();
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($curl);
echo $result;
Есть идеи?
Решение: используйте имя пользователя, а не электронную почту при предоставлении учетных данных.
Оказывается, даже если вы войдете со своей электронной почтой в JIRA, здесь будет использоваться не электронная почта, а имя пользователя, которое можно найти в Jira-> Settings-> Profile.
Попробуй удалить https://
часть из URL.
Попробуй добавить
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);