/// <summary> /// Get an <see cref="OAuthRequestToken"/> for the given callback URL. /// </summary> /// <remarks>Specify 'oob' as the callback for no callback to be performed.</remarks> /// <param name="callback">The callback Uri, or 'oob' if no callback is to be performed.</param> /// <returns></returns> public OAuthRequestToken OAuthGetRequestToken(string callback) { string url = "http://www.flickr.com/services/oauth/request_token"; Dictionary <string, string> parameters = OAuthGetBasicParameters(false); parameters.Add("oauth_callback", callback); string sig = OAuthCalculateSignature("POST", url, parameters, null); parameters.Add("oauth_signature", sig); string response = FlickrResponder.GetDataResponse(this, url, parameters);; return(OAuthRequestToken.ParseResponse(response)); }
private T GetResponse <T>(Dictionary <string, string> parameters) where T : IFlickrParsable, new() { // Flow for GetResponse. // 2. Calculate Cache URL. // 3. Check Cache for URL. // 4. Get Response if not in cache. // 5. Write Cache. // 6. Parse Response. OAuthGetBasicParameters(parameters); string responseXml = FlickrResponder.GetDataResponse(this, BaseUri.AbsoluteUri, parameters); var reader = new XmlTextReader(new StringReader(responseXml)) { WhitespaceHandling = WhitespaceHandling.None }; if (!reader.ReadToDescendant("rsp")) { throw new XmlException("Unable to find response element 'rsp' in Flickr response"); } while (reader.MoveToNextAttribute()) { if (reader.LocalName == "stat" && reader.Value == "fail") { //TODO: //throw ExceptionHandler.CreateResponseException(reader); } } reader.MoveToElement(); reader.Read(); var item = new T(); item.Load(reader); return(item); }
/// <summary> /// For a given request token and verifier string return an access token. /// </summary> /// <param name="requestToken"></param> /// <param name="requestTokenSecret"></param> /// <param name="verifier"></param> /// <returns></returns> public OAuthAccessToken OAuthGetAccessToken(string requestToken, string requestTokenSecret, string verifier) { string url = "http://www.flickr.com/services/oauth/access_token"; Dictionary <string, string> parameters = OAuthGetBasicParameters(false); parameters.Add("oauth_verifier", verifier); parameters.Add("oauth_token", requestToken); string sig = OAuthCalculateSignature("POST", url, parameters, requestTokenSecret); parameters.Add("oauth_signature", sig); string response = FlickrResponder.GetDataResponse(this, url, parameters); var accessToken = FlickrNet.OAuthAccessToken.ParseResponse(response); // Set current access token. OAuthAccessToken = accessToken.Token; OAuthAccessTokenSecret = accessToken.TokenSecret; return(accessToken); }