using PocketSharp.Models; using System; namespace PocketSharp { /// /// PocketClient /// public partial class PocketClient { /// /// Retrieves the requestCode from Pocket. /// /// public string GetRequestCode() { // check if request code is available if (CallbackUri == null) { throw new APIException("Authentication methods need a callbackUri on initialization of the PocketClient class"); } // do request RequestCode response = Get("oauth/request", Utilities.CreateParamInList("redirect_uri", CallbackUri)); // save code to client RequestCode = response.Code; // generate redirection URI and return return RequestCode; } /// /// Generate Authentication URI from requestCode /// /// The requestCode. /// public Uri GenerateAuthenticationUri(string requestCode = null) { // check if request code is available if(RequestCode == null && requestCode == null) { throw new APIException("Call GetRequestCode() first to receive a request_code"); } // override property with given param if available if(requestCode != null) { RequestCode = requestCode; } return new Uri(string.Format(authentificationUri, RequestCode, Uri.EscapeDataString(CallbackUri))); } /// /// Requests the access code after authentification /// /// public string GetAccessCode(string requestCode = null) { // check if request code is available if(RequestCode == null && requestCode == null) { throw new APIException("Call GetRequestCode() first to receive a request_code"); } // override property with given param if available if(requestCode != null) { RequestCode = requestCode; } // do request AccessCode response = Get("oauth/authorize", Utilities.CreateParamInList("code", RequestCode)); // save code to client AccessCode = response.Code; return AccessCode; } } }