Я пытаюсь получить доступ к API-интерфейсу REST Azure DevOps через php / curl и токен личного доступа, но у меня возникают проблемы с процессом аутентификации.
В документации говорится, что pat должен быть преобразован в base64, а затем добавлен в заголовок HTTP, однако я не смог правильно сделать это. Вот что я пробовал:
function GetBuilds($url, $token) {
$ci = curl_init();
curl_setopt($ci, CURLOPT_URL, $url);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ci, CURLOPT_TIMEOUT, 30);
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ci, CURLOPT_HTTPHEADER, array(
"content-type: text/html",
"content-length: 0",
"Authorization: Basic ".base64_encode($token) // Several variants have been tried.
)
);
$buffer = curl_exec($ci);
curl_close($ci);
return $buffer;
};
$ url - это ссылка на API DevOps, которая работает при вызове из браузера (после входа в систему), однако при вызове страницы с этой функцией возвращается строка «Объект перенесен сюда». со ссылкой "здесь", ведущей на страницу входа в систему Microsoft.