Как мне использовать webclient для oauth 2.0? - PullRequest
1 голос
/ 22 марта 2019

Я обработал много API со многих бирж.

Я хочу, чтобы API работал без вмешательства пользователя.

Обычно я писал такие коды

Dim timestamp = getEstimatedServerTimeStamp().ToString
Dim domain = "https://api.kucoin.com"
Dim endpoint = "/api/v1/" + method
Dim stringtosign = timestamp + "GET" + endpoint '1553106384182GET/api/v1/accounts
'Dim secretandpassphrase = _secret1.Split("|"c)
'Dim secret = secretandpassphrase(0) 'a7c38ae4-b6e3-4254-b78c-*******
'Dim passphrase = secretandpassphrase(1) '7Q5eVqOw*******

Dim hasher = New System.Security.Cryptography.HMACSHA256(System.Text.Encoding.UTF8.GetBytes(_secret1))
Dim sighashbyte = hasher.ComputeHash(System.Text.Encoding.UTF8.GetBytes(stringtosign))
Dim sighash = System.Convert.ToBase64String(sighashbyte)
Dim url = domain + endpoint 'url https://api.kucoin.com/api/v1/accounts
Dim response = CookieAwareWebClient.downloadString1(url, "", {Tuple.Create("KC-API-SIGN", sighash), Tuple.Create("KC-API-TIMESTAMP", timestamp), Tuple.Create("KC-API-KEY", _apiKey1), Tuple.Create("KC-API-PASSPHRASE", _passphrase1)})

Return response

Итак, я использую секрет и ключ API.

Однако в Sstex что-то другое.

Сначала они сказали мне зарегистрировать клиента и URL-адрес перенаправления. Что означает URL перенаправления?

Я пытался

собирается https://apidocs.stex.com/#/Profile/get_profile_wallets

чтобы попробовать демо.

Оказывается, я могу видеть содержимое своего кошелька, не используя свой API-ключ и секрет вообще. Вместо API-ключа и секрета я авторизую здесь

https://apidocs.stex.com/#/Profile/get_profile_wallets

Тогда я вижу свои весы.

Итак, после просмотра в Интернете я попробовал похожий код

Я сделал

   If token = "" Then
        Dim token1 = CookieAwareWebClient.downloadString1("https://app.stex.com/oauth/authorize?client_id=1**&client_secret=3vmEisPCGekF1JGePkwdSKdf4Q00lJTKmwxh****")

    End If

Вместо JSON я получаю HTML.

Вот мне и интересно.

Что именно я должен делать с OAuth? Он предназначен для чего-то отличного от обычного доступа к API?

В инструкции написано, что я должен скручивать такие вещи, как

curl -X GET "https://api3.stex.com/profile/wallets?sort=DESC&sortBy=BALANCE" -H  "accept: application/json" -H  "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjY1NzUyODQwYmMzMmMwNGU0MTExNmRmYjQ0M2I5NWY4NzAzYmVkYWIyNTk0ZWZhMTg3ZjhhMmQxOThiNzM1NGRkNThjZmYzYWJkZWEzZjg5In0.eyJhdWQiOiIxNDIiLCJqdGkiOiI2NTc1Mjg0MGJjMzJjMDRlNDExMTZkZmI0NDNiOTVmODcwM2JlZGFiMjU5NGVmYTE4N2Y4YTJkMTk4YjczNTRkZDU4Y2ZmM2FiZGVhM2Y4OSIsImlhdCI6MTU1MzI4NTc4NiwibmJmIjoxNTUzMjg1Nzg2LCJleHAiOjE1NTMzMjg5ODYsInN1YiI6IjMxOTgwMSIsInNjb3BlcyI6WyJwcm9maWxlIiwicmVwb3J0cyIsInRyYWRlIl19.aRuu1gmUmpcck_rMh9fcQwfDeJezn0tD0v1aSJ7joIhtsIXAdaw0H-SFOXwzo_HevFrcDnWGrZ4s9sTd1_vgRS2or7HyiV54c0ItVym6bOMKnFhGuxWWLubXN9HstjiM9TSghk7FtF5J0XeIDcY4vp25ycBmWM6Dddeyu4ehu3hurG-jUyT9N1C4u5KwqkYazeE1Z6XpCUrH77tAIlecTssPUzDtM6j-dYJOirYLx-E7fTn6H_bpHq_mosiHEy7IGe2uyggx0UIg4YIIX0noATxNfFiqZlXc32u8NywS7bDkFJ8e4s2r6vbL9pZU7Qe81IFrhs2jgUrQyjxe4SKsyolA9SulwF1haqsRGYTN_fNZyNm7u_Nzs2-RWxZw7h5KHT48AI483bHqJS3qfpjNF7FdpEufnn1QuFplumvyATtlEf56RCTfZ11fWjaET_b19P_3KpJw8H3pYSh8f-7MdIJcn68X1ls_9GahKKlX059I2M_6S2XkjwvnETlhiWGIdpttg2rJ1oHsEiNUuYzj7d1MBKGhSMX4y8OpB9hhW6CjgajG-YVk3SU6JWaVBEY_1w49Q6U-KxD4nzMK5I85Cn1C1iDPExuOwuyRRH1XSxsXLQ9tURsLOytlp7LkUNvzxb5lxZ18ho-OkvkWVkS18oSxR5y__WllywD_6_NT64s"

Так что я должен получить жетон на предъявителя. Как мне получить это, скажем, curl?

Мне нужен стандартный веб-запрос, такой как использование curl. Я хочу избежать незнакомой библиотеки, такой как специализированная библиотека oauth.

Я делаю приложение. Я не делаю сайт. Должен ли я даже использовать oauth2?

Я читал о oauth2 здесь

https://aaronparecki.com/oauth-2-simplified/#roles

В нем говорится, что «пользователи» увидят какой-то веб-сайт и могут «авторизоваться».

Посмотрите. Пользователь - это я. Я получил ключ API, секрет, идентификатор клиента, секрет клиента. Я не хочу, чтобы «пользователям» показывали что-либо. Я одобряю все эти вещи.

Stex говорит, что они откажутся от API версии 2 и будут использовать версию 3API. Они сказали, что API версии 3 использует Oauth.

Подходит ли oauth для приложения, которое запускается без присмотра?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...