当我尝试使用PHP访问JIRA REST API时未经授权(401)

时间:2015-02-13 10:06:31

标签: php curl jira jira-rest-api

我试图在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;

有什么想法吗?

2 个答案:

答案 0 :(得分:23)

解决方案:提供凭据时使用用户名而不是电子邮件。

事实证明,即使您在JIRA中使用您的电子邮件登录,也不是您在此处使用的电子邮件,而是用户名,可以在Jira-> Settings:> Profile

答案 1 :(得分:-1)

尝试从网址中删除https://部分。

尝试添加

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);