diff --git a/TrelloNet/ITrello.cs b/TrelloNet/ITrello.cs index 319df15..f2906d9 100644 --- a/TrelloNet/ITrello.cs +++ b/TrelloNet/ITrello.cs @@ -21,5 +21,6 @@ public interface ITrello void Authorize(string token); void Deauthorize(); Uri GetAuthorizationUrl(string applicationName, Scope scope, Expiration expiration = Expiration.ThirtyDays); + Uri GetAuthorizationUrl(string applicationName, Scope scope, Uri redirectUri, Expiration expiration = Expiration.ThirtyDays); } } \ No newline at end of file diff --git a/TrelloNet/Internal/TrelloRestClient.cs b/TrelloNet/Internal/TrelloRestClient.cs index 718098c..08d149f 100644 --- a/TrelloNet/Internal/TrelloRestClient.cs +++ b/TrelloNet/Internal/TrelloRestClient.cs @@ -33,6 +33,14 @@ public Uri GetAuthorizationUrl(string applicationName, Scope scope, Expiration e BaseUrl, _applicationKey, applicationName, scope.ToScopeString(), expiration.ToExpirationString())); } + public Uri GetAuthorizationUrl(string applicationName, Scope scope, Expiration expiration, Uri redirectUri) + { + Guard.NotNullOrEmpty(applicationName, "applicationName"); + + return new Uri(string.Format("{0}/authorize?key={1}&name={2}&scope={3}&expiration={4}&callback_method=fragment&return_url={5}", + BaseUrl, _applicationKey, applicationName, scope.ToScopeString(), expiration.ToExpirationString(), Uri.EscapeUriString(redirectUri.ToString()))); + } + public void Request(IRestRequest request) { var response = Execute(request); diff --git a/TrelloNet/Trello.cs b/TrelloNet/Trello.cs index 403e57b..f32d64e 100644 --- a/TrelloNet/Trello.cs +++ b/TrelloNet/Trello.cs @@ -58,5 +58,10 @@ public Uri GetAuthorizationUrl(string applicationName, Scope scope, Expiration e { return _restClient.GetAuthorizationUrl(applicationName, scope, expiration); } + + public Uri GetAuthorizationUrl(string applicationName, Scope scope, Uri redirectUri, Expiration expiration = Expiration.ThirtyDays) + { + return _restClient.GetAuthorizationUrl(applicationName, scope, expiration, redirectUri); + } } } \ No newline at end of file