Ejemplo n.º 1
0
        private async void btnCalculate_Click(object sender, EventArgs e)
        {
            List <TelstraWifiHotSpot> lst = new List <TelstraWifiHotSpot>();

            if (_token == null || _token.ExpiredDt < DateTime.Now)
            {
                _token = await GetAccessToken("your consumer key", "your consumer secret");
            }


            string latitude  = txtLatitude.Text;
            string longitude = txtLongitude.Text;
            string radius    = txtRadius.Text;

            string url = string.Format("https://api.telstra.com/v1/wifi/hotspots?lat={0}&long={1}&radius={2}", latitude, longitude, radius);

            HttpClient client = new HttpClient();

            client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _token.AccessToken);

            HttpRequestMessage request = new HttpRequestMessage()
            {
                Method     = HttpMethod.Get,
                RequestUri = new Uri(url)
            };

            HttpResponseMessage responseMessage = await client.SendAsync(request);

            var message = await responseMessage.Content.ReadAsStringAsync();

            var jMsg = JsonConvert.DeserializeObject <object>(message);



            foreach (var j in (JArray)jMsg)
            {
                string wifiLatitude  = ((JObject)j)["lat"].ToString();
                string wifiLongitude = ((JObject)j)["long"].ToString();
                string wifiAddress   = ((JObject)j)["address"].ToString();
                string wifiCity      = ((JObject)j)["city"].ToString();
                string wifiState     = ((JObject)j)["state"].ToString();

                TelstraWifiHotSpot hotspot = new TelstraWifiHotSpot(wifiLatitude, wifiLongitude, wifiAddress, wifiCity, wifiState);
                lst.Add(hotspot);
            }


            if (lst.Count > 0)
            {
                lstHotspots.DataSource    = lst;
                lstHotspots.DisplayMember = lst.ToString();
            }
        }
Ejemplo n.º 2
0
        private async Task <TelstraToken> GetAccessToken(string consumerkey, string consumersecret)
        {
            TelstraToken Token = new TelstraToken();

            string AccessUrl = @"https://api.telstra.com/v1/oauth/token";

            HttpClient  authClient  = new HttpClient();
            HttpContent httpContent = new FormUrlEncodedContent(new Dictionary <string, string>
            {
                { "client_id", consumerkey },
                { "client_secret", consumersecret },
                { "grant_type", "client_credentials" },
                { "scope", "WIFI" }
            });


            HttpRequestMessage Request = new HttpRequestMessage()
            {
                Method     = HttpMethod.Post,
                RequestUri = new Uri(AccessUrl),
                Content    = httpContent
            };

            try
            {
                var ResponseMessage = await authClient.SendAsync(Request);

                var Response = await ResponseMessage.Content.ReadAsStringAsync();

                if (ResponseMessage.IsSuccessStatusCode)
                {
                    var AuthToken = JsonConvert.DeserializeObject <object>(Response);

                    JObject jObj = JObject.Parse(AuthToken.ToString());

                    Token.AccessToken = jObj["access_token"].ToString();
                    Token.ExpiredDt   = DateTime.Now.AddSeconds(double.Parse(jObj["expires_in"].ToString()));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            return(Token);
        }