我试图在PHP中使用JIRA REST API。当我复制下面的网址并将其直接粘贴到浏览器中时,它可以正常工作。生成的问题以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;
有什么想法吗?
答案 0 :(得分:23)
解决方案:提供凭据时使用用户名而不是电子邮件。
事实证明,即使您在JIRA中使用您的电子邮件登录,也不是您在此处使用的电子邮件,而是用户名,可以在Jira-> Settings:> Profile
答案 1 :(得分:-1)
尝试从网址中删除https://
部分。
尝试添加
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);