Использование Curl в PHP для API-интерфейсов bitbucket

я пытаюсь выучить curl в PHPЯ пытался реализовать bitbucket API, который имеет следующий синтаксис для аутентификации:

$ curl -X POST -u "client_id:secret" \
https://bitbucket.org/site/oauth2/access_token -d grant_type=password \
-d username={username} -d password={password}

Это согласно документации: https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html
Который при использовании в PHP Я сделал что-то вроде этого:

$postData = array(
'grant_type' => 'password',
'username' => '*******',
'password' => '**********'
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://bitbucket.org/site/oauth2/access_token',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $postData,
));

$response = curl_exec($curl);

Но я получаю ошибку

«{» error_description «:» Отсутствуют учетные данные клиента; этот запрос должен быть аутентифицирован с помощью идентификатора клиента OAuth и секрета «,» error «:» unauthorized_client «}»

Я попытался использовать client_id и secret тоже так:

$postData = array(
'grant_type' => 'password',
'client_id' => '*******',
'secret' => '**********'
);

Но все равно не поможет.

0

Решение

Вы скучаете по -u флаг, который base-64 кодирует ваш "client_id:secret" строка и устанавливает его в Authorization заголовок.

Чтобы добиться эффекта в PHP, установите CURLOPT_USERPWD вариант.

Прочитайте больше Вот.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]