Я хочу использовать API останова Bitbucket с двухфакторной аутентификацией Bitbucket, поэтому я могу администрировать свою учетную запись, используя curl через терминал. Раньше я делал вызовы REST API без 2FA, и теперь я хочу сделать этот переход.API-интерфейс Bitbucket с двухфакторной аутентификацией
С включенным 2FA вам необходимо использовать протокол OAuth 2.0 для вызова API; а не стандартные вызовы API REST, вы найдете на Bitbucket site.
Теперь я дошел до создания так называемого потребителя на веб-сайте Bitbucket. Это порождает ключ и секрет.
Часть, в которой я застрял, заключается в следующем. С помощью этого ключа и Secret, вы можете получить так называемый маркер доступа (срок действия которого истекает через час) через
https://bitbucket.org/site/oauth2/authorize?client_id={client_id}&response_type=code
, которые вы можете сделать с помощью локонов команды
$ 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 documentation. Я полагаю, что-то вроде,
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: один для получения токена доступа; и один для обновления токена доступа. Или есть более простой способ?
Как бы то ни было, быстрый обзор того, как сделать вызовы API REST с включенным 2FA, будет высоко оценен.
Сначала вам нужно получить временный код. Что вы получите перенаправление пользователя на первый URL, который у вас есть, передав ваш client_id. Затем в ** обратном вызове ** вам нужно извлечь код (временный код). После этого вы можете запросить токен доступа, передающий client_id, секретный и временный код, выполнив запрос с указанным вами CURL. В ответ это будет включать токен доступа, который вы должны сохранить, чтобы запросить необходимую информацию. – Hosar