コード例 #1
0
 public async Task<Photo> InitiateGeoFetch()
 {
     if (this._geo == null)
     {
         this._geo = await App.flickr.GetGeoInfo(id);
     }
     return this;
 } 
コード例 #2
0
ファイル: FlickrApi.cs プロジェクト: ponnuswa/Flickr_TestApp
        public async Task<GeoInfo> GetGeoInfo(string photoId)
        {
            //https://api.flickr.com/services/rest/?method=flickr.photos.geo.getLocation&api_key=dba3355dc8c8dd0fa6b7a45ce2a44db3&photo_id=22128905835&format=json&nojsoncallback=1&auth_token=72157659832560651-376ab699108fe73b&api_sig=9f500b727d3e2585b397d96f966fbef0
            Dictionary<string, string> parameters = new Dictionary<string, string>();
            parameters.Add("method", "flickr.photos.geo.getLocation");
            parameters.Add("photo_id", photoId);
            parameters.Add("api_key", _consumerkey);
            //parameters.Add("format", "json");
            //parameters.Add("nojsoncallback", "1");
            parameters.Add("auth_token", _authtoken);

            string sig = Utility.AuthCalculateSignature(_consumersecret, parameters);
            parameters.Add("api_sig", sig);

            string webrequest = _restserviceurl + "?" + Utility.BuildString(parameters);
            HttpClient proxy = new HttpClient();
            HttpResponseMessage response = await proxy.GetAsync(webrequest);
            string webresponse = await response.Content.ReadAsStringAsync();

            XDocument doc = XDocument.Parse(webresponse);

            var rsp = doc.Descendants(XName.Get("rsp")).FirstOrDefault();
            GeoInfo data = new GeoInfo();
            if ((string)rsp.Attribute("stat") == "ok")
            {
                var element = doc.Descendants(XName.Get("location")).FirstOrDefault();
                data.latitude = Convert.ToDouble((string)element.Attribute("latitude"));
                data.longitude = Convert.ToDouble((string)element.Attribute("longitude"));
                data.accuracy = Convert.ToInt32((string)element.Attribute("accuracy"));
                data.locality = doc.Descendants(XName.Get("locality")).FirstOrDefault().Value;

                data.isValid = true;
            }
            return data;
        }