Неавторизованный (401), когда я пытаюсь получить доступ к API JIRA REST с PHP

Я пытаюсь использовать API JIRA REST с PHP. Когда я копирую URL-адрес ниже и вставляю его прямо в браузер, он отлично работает. Полученная проблема возвращается как json.

Но с приведенным ниже кодом это не работает. Я получаю Unauthorized (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;

Любые идеи?

Ответ 1

Решение. Используйте имя пользователя, а не электронную почту при предоставлении учетных данных.

Оказывается, даже если вы входите в систему со своей электронной почтой в JIRA, это не адрес электронной почты, который вы используете здесь, но имя пользователя, которое можно найти в Jira- > Settings- > Profile

Ответ 2

Попробуйте удалить часть https:// из URL-адреса.

Попробуйте добавить

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);