Я хочу использовать Rest API Bitbucket с включенной двухфакторной аутентификацией Bitbucket, чтобы я мог управлять своей учетной записью с помощью curl через терминал. Раньше я делал вызовы REST API без 2FA, а теперь хочу сделать этот переход.
При включенной двухфакторной аутентификации вам необходимо использовать протокол OAuth 2.0 для выполнения вызовов API; вместо стандартных вызовов REST API, которые вы найдете на сайте Bitbucket.
Теперь я дошел до создания так называемого потребителя на веб-сайте Bitbucket. Это генерирует ключ и секрет.
Часть, где я застрял, заключается в следующем. С этим ключом и секретом вы можете получить так называемый токен доступа (срок действия которого истекает через час) через
https://bitbucket.org/site/oauth2/authorize?client_id={client_id}&response_type=code
, что вы можете сделать с помощью команды curl
$ curl -X POST -u "client_id:secret" \
https://bitbucket.org/site/oauth2/access_token \
-d grant_type=authorization_code -d code={code}
.
Я не знаю, как получить этот токен доступа; т. е. шаг от вызова команды curl до ее включения в переменную Bash.
Получив токен доступа, мы можем отправлять запросы к API, включив его в нашу команду curl в соответствии с Документация по Bitbucket. Я полагаю, что-то вроде,
curl -u "client_id:secret" https://api.bitbucket.org/2.0/[API Request] --data-urlencode "access_token=$[Access_token]" --data "[api_request_data]=[Api_request_data]"
, где $[Access_token]
— это наша переменная Bash, содержащая наш неистекший токен доступа.
Я хочу создать две функции, реализованные в Bash: одну для получения токена доступа; и один для обновления маркера доступа. Или есть более простой способ?
В любом случае, хотелось бы получить краткий обзор того, как выполнять вызовы REST API с включенной двухфакторной аутентификацией.