Я использую Spring 5 и Java 8, чтобы создать приложение для использования Coinbase Pro, чтобы совершать сделки для себя и других. У меня есть файл coinbase.properties со следующими свойствами:
authorize.url=https://www.coinbase.com/oauth/authorize
access.url=http://www.coinbase.com/oauth/token
token.url=https://api.coinbase.com/oauth/token
current.user.url=https://api.coinbase.com/v2/user
Я могу вызвать страницу авторизации для Coinbase, и пользователь разрешит авторизацию. После авторизации он возвращается на мою страницу обратного вызова с кодом и состоянием, которое я изначально отправил. Я могу использовать этот код для создания access_token и refresh_token. Я сохраняю этот refresh_token в базе данных, потому что знаю, что access_token действителен только в течение 2 часов, и если я хочу что-то сделать снова, я могу использовать refresh_token, чтобы получить новый access_token и новый refresh_token ... все в порядке.
Итак, как видите, я использую Oauth2 для аутентификации в Coinbase. Я могу использовать user.url, чтобы получить информацию о пользователе, передающем идентификатор пользователя. Конечно, я также должен передать access_token:
header: Authorization: Bearer {access_token}
Итак, первый вопрос ... могу ли я использовать этот механизм OAuth для Coinbase Pro и Coinbase Pro Sandbox, чтобы совершать сделки для себя и других ??? При поиске Coinbase Pro я увидел только ссылку REST API:
https://api.pro.coinbase.com (not interested in the FIX link)
Я предполагаю, что мне придется изменить свои свойства на:
authorize.url=https://www.coinbase.com/oauth/authorize
access.url=http://www.coinbase.com/oauth/token
token.url=https://api.pro.coinbase.com/oauth/token
current.user.url=https://api.pro.coinbase.com/v2/user
order.url=https://api.pro.coinbase.com/orders
В документации Coinbase Pro REST API для / orders говорится о ключе API и подписи сообщения. Но это похоже на то, что я торгую только на себя. Если я совершаю сделки для других, то я использую Oauth2, который, безусловно, мне подходит.
Я тестирую функциональность ордеров на продажу / обмен и могу использовать для этого Sandbox. Sandbox немного отличается, там у нас есть базовая конечная точка и конечная точка REST api:
# https://public.sandbox.pro.coinbase.com/
# https://api-public.sandbox.pro.coinbase.com
В этом случае, если я использую Oauth2 для аутентификации, я ожидаю следующего:
authorize.url=https://public.sandbox.pro.coinbase.com/oauth/authorize
access.url=https://public.sandbox.pro.coinbase.com/oauth/token
token.url=https://api-public.sandbox.pro.coinbase.com/oauth/token
current.user.url=https://api-public.sandbox.pro.coinbase.com/v2/user
order.url=https://api-public.sandbox.pro.coinbase.com/orders
Таким образом, я использую аутентификацию Oauth2 с песочницей Coinbase Pro. Таким образом, я могу использовать access_token для совершения сделок для себя и других. Я смотрю документацию по Coinbase Pro, и когда дело доходит до оформления заказов. Я предполагаю, что мне также нужно добавить заголовок для носителя «Аутентификация» {access_token}
Если все верно, значит, я на правильном пути. Я просто хотел убедиться, что я на правильном пути, и если нет, то любая помощь будет очень полезной. Конечно, если я не могу использовать аутентификацию Oauth2, чтобы совершать сделки для себя и других с Coinbase Pro, мне нужно это изучить.
Спасибо!