Этот код работает
Я занимаюсь серфингом Я получил код, просматривая профиль https://app.stex.com/oauth/authorize?response_type=code&client_id=144&scope=trade, затем получил код.
Я поместил код в свою программу
Dim code = "def50200354606432acfb60c836ac40ff440dc2755164756cd7e34ddcf9cd4db8df87cabe71bf5e5c5c278c18c81b0415ba47da34f83ddaab0a84696e1722e266aec2e7942ed86e40e65b0dcf7428aad2747920de6cf8585ce281214f2ecc7353e807640320ca263013387ea0b2d466e2cc31b46c2a2e7b1dd33cdc518efa20b76b752734174f2b500450ed1ccb434611b0bdc458fcfed69a2ab2a5f91242f1f68c504d3151048c49eaf976eff6bbb922dac1acbba069fc8b57fd74069eeadf24c067edf4563aa5ad14b0d9740f1518723ba1c5637164e5e3c4d408102f49c0f63d8f3f5dfbfe11132d242a182e4af3449e811292d1ac69aadf74608a5383b9c4030de3579c98b07c4f087752f7e404f4897d8167b3d8ad266bdb42f74b539cc3fef6ce774edd35d305e655e984028614e50afe760acc754de70986dc7651ac760d5817c665ef1238d0811190763dbfd65993408d12dcf7926be6c71afb5d8a10528c174647934bdd1e4fcf1f4a800b8a74a7ae93bf60b02c602900a981bdb75e9de2b17f359ee"
Тогда я делаю
Dim token2 = CookieAwareWebClient.downloadString1("https://api3.stex.com/oauth/token", "grant_type=authorization_code&code=" + code + "&client_id=" + _apiKey1 + "&client_secret=" + _secret1 + "&redirect_uri=https://apidocs.stex.com/oauth2-redirect.html", {})
Dim jtoken1 = JToken.Parse(token2)
Dim refreshtoken = jtoken1.Item("refresh_token").ToString
И это работает.
Однако этот код не работает
Dim token2 = CookieAwareWebClient.downloadString1("https://api3.stex.com/oauth/token", "grant_type=authorization_code&code=" + code + "&client_id=" + _apiKey1 + "&client_secret=" + _secret1, {})
Dim jtoken1 = JToken.Parse(token2)
Dim refreshtoken = jtoken1.Item("refresh_token").ToString
Единственное отличие состоит в том, что впервый код, который я добавил + "&redirect_uri=https://apidocs.stex.com/oauth2-redirect.html"
По сути, я создаю API Stex.
У моего клиента есть только один URL-адрес перенаправления.Так почему я должен указать этот URL перенаправления, который больше не используется, и сервер все равно знает, для https://api3.stex.com/oauth/token url?
Я думаю, что я прочитал RFC
4.1.3.Запрос токена доступа
Клиент отправляет запрос конечной точке токена, отправляя следующие параметры в формате «application / x-www-form-urlencoded» в Приложении B с кодировкой символов UTF-8 вТело сущности HTTP-запроса:
[...]
redirect_uri
REQUIRED, если параметр "redirect_uri" был включен в запрос авторизациикак описано в Разделе 4.1.1, и их значения ДОЛЖНЫ быть идентичны.
Это говорит о том, что redirect_URI требуется, если параметр был включен.
Я не включал параметркогда я запрашиваю код авторизации.