Я не могу найти учебник или пример кода, в котором показано, как / когда нужно обновить sh токен доступа. Как реализовать обновление нового маркера доступа, когда он истекает?
Это то, что у меня есть до сих пор:
Это класс, где можно получить новый токен доступа и обновить sh токен.
namespace DemoApp
{
public class Tokens
{
public string access_token { get; set; }
public string token_type { get; set; }
public int expires_in { get; set; }
public string refresh_token { get; set; }
}
public class AccessToken
{
public void GetNewAccessToken()
{
Tokens localTokens = new Tokens();
var client = new RestClient("www.example.com/api/token");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("application/x-www-form-urlencoded", "grant_type=refresh_token&refresh_token=" + localTokens.refresh_token, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
var responseContent = response.Content;
var newTokensList = new JavaScriptSerializer().Deserialize<Tokens>(responseContent);
localTokens.access_token = newTokensList .access_token;
localTokens.refresh_token = newTokensList .refresh_token;
}
}
}
Это класс, где он вызывает API, с новым токеном доступа, чтобы получить новые данные.
namespace DemoApp
{
public class API
{
public Data()
{
public void CallAPI()
{
Tokens tokens = new Tokens();
var client = new RestClient("www.example.com/api");
var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Bearer " + tokens.access_token);
request.AddHeader("accept", "application/json; charset=utf-8");
IRestResponse response = client.Execute(request);
var data = response.Content;
}
}
}
}