2016-12-01 7 views
1

Я хочу использовать 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, будет высоко оценен.

+0

Сначала вам нужно получить временный код. Что вы получите перенаправление пользователя на первый URL, который у вас есть, передав ваш client_id. Затем в ** обратном вызове ** вам нужно извлечь код (временный код). После этого вы можете запросить токен доступа, передающий client_id, секретный и временный код, выполнив запрос с указанным вами CURL. В ответ это будет включать токен доступа, который вы должны сохранить, чтобы запросить необходимую информацию. – Hosar

ответ

1

Вы можете использовать бит приложения «Bitbucket». Больше информации here.