Это мой код
If expire < jsonHelper.currentTimeStamp Or accesstoken = "" Or mustExpire Then
Dim post = "grant_type=refresh_token&refresh_token=" + refreshToken + "&client_id=" + _apiKey1 + "&client_secret=" + _secret1 + "&scope=trade profile"
'post = grant_type=refresh_token&refresh_token=def502009e93bd2bd7e25edf065daf164387ceed98d4c575aaf23f44a729cdf998661c9fc1af1fc888b8887e6203f75e2f7989f4357fc4bd0d8fc98017e255afab780a0e1cf94b1098b0cd0a952f16e99b8d0cc70db2d60592e63a3c8e690730fe42fc2a304e0d0a0301fd77ee134ca05a3c4543e2ce3c8501da88bcc0eecba36f7f05202c2c5c11647acfbf22aca342e042a7bd50e760e3130e21c04e1a2c46053f7f1cf6e19e7a2ce9bc98ec5b15fa9775a700e4d968bd8ddcac81cd34fea24691245b4a191feadb62dacb0fbe72e7455df2a83bc0ef4de8a6e150bd1c22e7818888e4fc8c59e6361a1d6ea428930732e7ed3b3c783029e4bf2c0dfce0c6d6eab265844ee4a774c2a6797941bc321f20eda4bb56429381fb2eda2dda9f1594379d9069d02474dc6af9b1c1ad89eb5d8d93f5408388645dbc3bae80eefb79a01b414b8272c966f9f9ebe751750d248b0b0ae5725a2ee6dfca722a4e6856459df30923f143289685dd96f8d24d1f0f5dcb50d2982a5a9e15eb&client_id=229&client_secret=7FF2MQWhDSfSkFZncVi9ZvpYH0GleLFVUc4e2v8S&scope=trade profile
tokenstring = ""
For i = 1 To 10
tokenstring = Await CookieAwareWebClient.downloadString1Async("https://api3.stex.com/oauth/token", post)
If tokenstring = "" Then
Await Task.Delay(1000000)
Else
saveJtoken(tokenstring)
jtoken1 = JObject.Parse(tokenstring) 'reparse tokenstring with new string
Exit For
End If
Next i
If tokenstring = "" Then
Return ""
tokenstring = Await getAccessTokenFromCodeAsync()
If tokenstring = "" Then
Return ""
Else
saveJtoken(tokenstring)
jtoken1 = JObject.Parse(tokenstring) 'reparse tokenstring with new string
End If
End If
End If
Посмотрите на эту пару кодов
Dim post = "grant_type=refresh_token&refresh_token=" + refreshToken + "&client_id=" + _apiKey1 + "&client_secret=" + _secret1 + "&scope=trade profile"
...
tokenstring = Await CookieAwareWebClient.downloadString1Async("https://api3.stex.com/oauth/token", post)
Эти 2 кода иногда работают, иногда нет.
Это означает код правильный. Однако, в конце концов, это не удается. Это означает, что я должен заставить пользователя выполнить повторную авторизацию, и я хочу, чтобы это произошло как никогда.
Как это может быть?
Каждый раз, когда я получал токен на предъявителя, я получал рефр sh токен правильно? Я могу получить еще один refre sh токен, используя предыдущий refre sh token right?
Иногда время от времени происходит сбой.
Одна из причин, по которой он может завершиться неудачей, - inte rnet нестабильность. Скажем, у меня есть refreshtoken1. Скажем, я пытаюсь получить refreshtoken2. Скажи, что-то что-то идет не так, и я не получаю refreshtoken2.
Вот и все. Я должен попросить пользователя пройти авторизацию. Это потому, что refreshtoken1 больше не работает, а у меня нет refreshtoken2
Как предотвратить это?