/// <summary> /// Generates a new Accesstoken /// </summary> /// <returns>Successful</returns> public bool GenerateNewAccessToken(WebProxy proxy = null) { try { if (string.IsNullOrWhiteSpace(DeviceUid)) { DeviceUid = Helpers.GetRandomDeviceUid(); } JsonRequestGenerateAccessToken payload = new JsonRequestGenerateAccessToken { device_uid = DeviceUid, location = new JsonRequestGenerateAccessToken.Location { City = UserConfig.CityName, country = UserConfig.CountryCode, loc_accuracy = 0, loc_coordinates = new JsonRequestGenerateAccessToken.Location.Coordinates { lat = UserConfig.Place.Latitude, lng = UserConfig.Place.Longitude } }, client_id = Constants.ClientId }; string jsonString = Links.GetRequestToken.ExecuteRequest(UserConfig, payload: payload, proxy: proxy); JsonTokens.RootObject objTokens = JsonConvert.DeserializeObject <JsonTokens.RootObject>(jsonString); Token = objTokens.access_token; DistinctId = objTokens.distinct_id; ExpirationDate = objTokens.expiration_date; TokenType = objTokens.token_type; RefreshToken = objTokens.refresh_token; } catch (Exception) { return(false); } return(true); }
/// <summary> /// Generates an access token. /// </summary> /// <returns>System.String.</returns> public static Tokens GenerateAccessToken() { DateTime dt = DateTime.UtcNow; string jsonString; string deviceUid = Helpers.Sha256(Helpers.RandomString(20, true)); string stringifiedPayload = @"POST%api.go-tellm.com%443%/api/v2/users/%%" + $"{dt:s}Z" + @"%%{""device_uid"": """ + deviceUid + @""", ""location"": {""City"": """ + _user.City + @""", ""loc_accuracy"": 0, ""loc_coordinates"": {""lat"": " + _user.Latitude + @", ""lng"": " + _user.Longitude + @"}, ""country"": """ + _user.CountryCode + @"""}, " + @"""client_id"": """ + Constants.ClientId + @"""}"; string payload = @"{""device_uid"": """ + deviceUid + @""", ""location"": {""City"": """ + _user.City + @""", ""loc_accuracy"": 0, ""loc_coordinates"": " + @"{""lat"": " + _user.Latitude + @", ""lng"": " + _user.Longitude + @"}, ""country"": """ + _user.CountryCode + @"""}, ""client_id"": """ + Constants.ClientId + @"""}"; var keyByte = Encoding.UTF8.GetBytes(Constants.Key); using (var hmacsha1 = new HMACSHA1(keyByte)) { hmacsha1.ComputeHash(Encoding.UTF8.GetBytes(stringifiedPayload)); using (var client = new MyWebClient()) { client.Headers.Add(Constants.Header.ToHeader(stringifiedPayload, DateTime.UtcNow)); client.Encoding = Encoding.UTF8; jsonString = client.UploadString(Constants.LinkGenAt, payload); } } JsonTokens.RootObject objTokens = JsonConvert.DeserializeObject <JsonTokens.RootObject>(jsonString); return(new Tokens { AccessToken = objTokens.access_token, RefreshToken = objTokens.refresh_token, ExpireTimestamp = objTokens.expiration_date }); }