package org.pac4j.oauth.client; import com.github.scribejava.apis.VkontakteApi; import org.pac4j.core.context.WebContext; import org.pac4j.oauth.profile.vk.VkProfile; import org.pac4j.oauth.profile.vk.VkProfileDefinition; /** * <p>This class is the OAuth client to authenticate users in Vk.</p> * <p>The <i>scope</i> can be defined to require specific permissions from the user * by using the {@link #setScope(String)} method. By default, the <i>scope</i> * is : <code>PERMISSIONS</code>.</p> * <p>It returns a {@link org.pac4j.oauth.profile.vk.VkProfile}.</p> * <p>More information at https://vk.com/dev/users.get</p> * * @author indvdum (gotoindvdum[at]gmail[dot]com) * @since 1.5 * */ public class VkClient extends OAuth20Client<VkProfile> { public final static String DEFAULT_FIELDS = "sex,bdate,photo_50,photo_100,photo_200_orig,photo_200,photo_400_orig,photo_max,photo_max_orig,online,online_mobile,lists,domain,has_mobile,contacts,connections,site,education,can_post,can_see_all_posts,can_see_audio,can_write_private_message,status,common_count,relation,relatives"; protected String fields = DEFAULT_FIELDS; public final static String DEFAULT_SCOPE = "PERMISSIONS"; protected String scope = DEFAULT_SCOPE; public VkClient() { } public VkClient(final String key, final String secret) { setKey(key); setSecret(secret); } @Override protected void clientInit(final WebContext context) { configuration.setApi(VkontakteApi.instance()); configuration.setProfileDefinition(new VkProfileDefinition()); configuration.setScope(this.scope); setConfiguration(configuration); super.clientInit(context); } public String getScope() { return this.scope; } public void setScope(final String scope) { this.scope = scope; } public String getFields() { return fields; } public void setFields(final String fields) { this.fields = fields; } }