package com.github.scribejava.apis; import com.github.scribejava.apis.facebook.FacebookAccessTokenJsonExtractor; import com.github.scribejava.core.builder.api.DefaultApi20; import com.github.scribejava.core.extractors.TokenExtractor; import com.github.scribejava.core.model.OAuth2AccessToken; import com.github.scribejava.core.model.Verb; /** * Facebook v2.8 API */ public class FacebookApi extends DefaultApi20 { protected FacebookApi() { } private static class InstanceHolder { private static final FacebookApi INSTANCE = new FacebookApi(); } public static FacebookApi instance() { return InstanceHolder.INSTANCE; } @Override public Verb getAccessTokenVerb() { return Verb.GET; } @Override public String getAccessTokenEndpoint() { return "https://graph.facebook.com/v2.8/oauth/access_token"; } @Override public String getRefreshTokenEndpoint() { throw new UnsupportedOperationException("Facebook doesn't support refershing tokens"); } @Override protected String getAuthorizationBaseUrl() { return "https://www.facebook.com/v2.8/dialog/oauth"; } @Override public TokenExtractor<OAuth2AccessToken> getAccessTokenExtractor() { return FacebookAccessTokenJsonExtractor.instance(); } }