All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.pac4j.oauth.client.FoursquareClient Maven / Gradle / Ivy

There is a newer version: 6.1.0
Show newest version
package org.pac4j.oauth.client;

import com.fasterxml.jackson.databind.JsonNode;
import com.github.scribejava.apis.Foursquare2Api;
import com.github.scribejava.core.builder.api.BaseApi;
import com.github.scribejava.core.builder.api.DefaultApi20;
import com.github.scribejava.core.model.OAuth2AccessToken;
import com.github.scribejava.core.oauth.OAuth20Service;
import org.pac4j.core.context.WebContext;
import org.pac4j.core.exception.HttpAction;
import org.pac4j.oauth.profile.JsonHelper;
import org.pac4j.oauth.profile.foursquare.FoursquareProfile;
import org.pac4j.scribe.oauth.Foursquare20Service;

/**
 * 

This class is the OAuth client to authenticate users in Foursquare. * It returns a {@link org.pac4j.oauth.profile.foursquare.FoursquareProfile}.

*

More information at https://developer.foursquare.com/overview/auth.html

* * @author Alexey Ogarkov * @since 1.5.0 */ public class FoursquareClient extends BaseOAuth20Client{ public FoursquareClient() {} public FoursquareClient(String key, String secret) { setKey(key); setSecret(secret); } @Override protected void internalInit(final WebContext context) { super.internalInit(context); this.service = new Foursquare20Service((DefaultApi20) getApi(), buildOAuthConfig(context)); } @Override protected BaseApi getApi() { return Foursquare2Api.instance(); } @Override protected String getOAuthScope() { return "user"; } @Override protected String getProfileUrl(final OAuth2AccessToken accessToken) { return "https://api.foursquare.com/v2/users/self?v=20131118"; } @Override protected FoursquareProfile extractUserProfile(String body) throws HttpAction { FoursquareProfile profile = new FoursquareProfile(); JsonNode json = JsonHelper.getFirstNode(body); if (json == null) { return profile; } JsonNode response = (JsonNode) JsonHelper.getElement(json, "response"); if (response == null) { return profile; } JsonNode user = (JsonNode) JsonHelper.getElement(response, "user"); if (user != null) { profile.setId(JsonHelper.getElement(user, "id")); for (final String attribute : profile.getAttributesDefinition().getPrimaryAttributes()) { profile.addAttribute(attribute, JsonHelper.getElement(user, attribute)); } } return profile; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy