2015-02-13 14 views
10

Sto provando a utilizzare l'API REST JIRA con PHP. Quando copio l'url qui sotto e lo incollo direttamente nel browser, funziona bene. Il problema risultante viene restituito come json.Non autorizzato (401) quando provo ad accedere all'API JREA REST con PHP

Ma con il codice qui sotto non funziona. Ottengo Non autorizzato (401) come messaggio di risposta. Sì, ho controllato e ricontrollato che le credenziali siano valide. Questo è il mio codice:

$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; 

Qualche idea?

risposta

23

Soluzione: utilizzare il nome utente e non e-mail quando fornire le credenziali.

Si scopre, anche se si effettua il login con il vostro email in JIRA, non è l'e-mail si usa qui, ma il nome utente, che può essere trovato in Jira-> Impostazioni-> Profilo

+1

fornendo nome utente ha fatto il trucco, grazie! –

+1

Sì, nel mio caso il nome utente era solo la parte prima della @ (non l'intero indirizzo email), quindi mi ha registrato direttamente. –

+1

Scatto fantastico, mi sono lasciato ingannare per un secondo o due –

-1

Provare a rimuovere https:// parte dall'URL.

tenta di aggiungere

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);