diff --git a/src/main/java/mastodon/api/LoginProcess.java b/src/main/java/mastodon/api/LoginProcess.java index 54e121c..c98ddf7 100644 --- a/src/main/java/mastodon/api/LoginProcess.java +++ b/src/main/java/mastodon/api/LoginProcess.java @@ -26,14 +26,10 @@ public String getLoginURL() { return url.build(); } - public MastodonSession authorize(String code) throws IOException { + public TokenResponse authorize(String code) throws IOException { AuthorizationCodeTokenRequest request = flow.newTokenRequest(code); if (redirectUri != null) request.setRedirectUri(redirectUri); - - TokenResponse response = request.execute(); - Credential credential = new Credential(flow.getMethod()).setFromTokenResponse(response); - - return new MastodonSession(app, credential); + return request.execute(); } } diff --git a/src/main/java/mastodon/api/MastodonSession.java b/src/main/java/mastodon/api/MastodonSession.java index da97be8..54af575 100644 --- a/src/main/java/mastodon/api/MastodonSession.java +++ b/src/main/java/mastodon/api/MastodonSession.java @@ -1,9 +1,12 @@ package mastodon.api; +import com.google.api.client.auth.oauth2.AuthorizationCodeFlow; import com.google.api.client.auth.oauth2.Credential; +import com.google.api.client.auth.oauth2.TokenResponse; import com.google.api.client.http.*; import com.google.gson.reflect.TypeToken; import mastodon.api.internal.FormDataContent; +import mastodon.api.internal.RequestsHelper; import mastodon.api.objects.*; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; @@ -35,6 +38,12 @@ public class MastodonSession { this.credential = credential; } + public static MastodonSession getSession(MastodonApp app, TokenResponse tokenResponse, Scope... scopes) { + AuthorizationCodeFlow flow = RequestsHelper.createFlow(app, scopes); + Credential credential = new Credential(flow.getMethod()).setFromTokenResponse(tokenResponse); + return new MastodonSession(app, credential); + } + public Raw raw() { return raw; }