Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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
            });
        }