
ru.hh.oauth.subscribe.apis.GoogleApi20 Maven / Gradle / Ivy
The newest version!
package ru.hh.oauth.subscribe.apis;
import ru.hh.oauth.subscribe.apis.google.GoogleJsonTokenExtractor;
import ru.hh.oauth.subscribe.apis.service.GoogleOAuthServiceImpl;
import ru.hh.oauth.subscribe.core.builder.api.DefaultApi20;
import ru.hh.oauth.subscribe.core.extractors.AccessTokenExtractor;
import ru.hh.oauth.subscribe.core.model.OAuthConfig;
import ru.hh.oauth.subscribe.core.model.OAuthConstants;
import ru.hh.oauth.subscribe.core.model.Verb;
import ru.hh.oauth.subscribe.core.oauth.OAuthService;
import ru.hh.oauth.subscribe.core.utils.OAuthEncoder;
import ru.hh.oauth.subscribe.core.utils.Preconditions;
public class GoogleApi20 extends DefaultApi20 {
private static final String AUTHORIZE_URL
= "https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=%s&redirect_uri=%s&scope=%s";
@Override
public Verb getAccessTokenVerb() {
return Verb.POST;
}
@Override
public String getAccessTokenEndpoint() {
return "https://accounts.google.com/o/oauth2/token";
}
@Override
public String getAuthorizationUrl(final OAuthConfig config) {
Preconditions.checkValidUrl(config.getCallback(),
"Must provide a valid url as callback. Google+ does not support OOB");
final StringBuilder sb = new StringBuilder(String.format(AUTHORIZE_URL, config.getApiKey(), OAuthEncoder.encode(
config.getCallback()), OAuthEncoder.encode(config.getScope())));
final String state = config.getState();
if (state != null) {
sb.append('&').append(OAuthConstants.STATE).append('=').append(OAuthEncoder.encode(state));
}
return sb.toString();
}
@Override
public AccessTokenExtractor getAccessTokenExtractor() {
return new GoogleJsonTokenExtractor();
}
@Override
public OAuthService createService(OAuthConfig config) {
return new GoogleOAuthServiceImpl(this, config);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy