mtons.oauth2.provider.WeiboProvider Maven / Gradle / Ivy
/*
+--------------------------------------------------------------------------
| Mtons [#RELEASE_VERSION#]
| ========================================
| Copyright (c) 2014, 2015 mtons. All Rights Reserved
| http://www.mtons.com
+---------------------------------------------------------------------------
*/
package mtons.oauth2.provider;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import mtons.oauth2.OauthUser;
import java.util.HashMap;
import java.util.Map;
/**
* Created by langhsu on 2017/9/3.
*/
public class WeiboProvider extends AbstractOauth2Provider {
public WeiboProvider (){
}
public String createAuthorizeUrl(String state) {
StringBuilder urlBuilder = new StringBuilder("https://api.weibo.com/oauth2/authorize?");
urlBuilder.append("scope=email");
urlBuilder.append("&client_id=" + getClientId());
urlBuilder.append("&redirect_uri=" + getRedirectUri());
urlBuilder.append("&state=" + state);
return urlBuilder.toString();
}
public OauthUser getUser(String code) {
Map params = new HashMap();
params.put("grant_type", "authorization_code");
params.put("client_id", getClientId());
params.put("client_secret", getClientSecret());
params.put("redirect_uri", getRedirectUri());
params.put("code", code);
String url = "https://api.weibo.com/oauth2/access_token";
String httpString = httpPost(url, params);
if (StringUtils.isBlank(httpString)) {
return null;
}
JSONObject json = JSONObject.parseObject(httpString);
String accessToken = json.getString("access_token");
String uid = json.getString("uid");
url = "https://api.weibo.com/2/users/show.json?" + "access_token=" + accessToken + "&uid=" + uid;
httpString = httpGet(url);
json = JSONObject.parseObject(httpString);
OauthUser user = new OauthUser();
user.setAccessToken(accessToken);
user.setAvatar(json.getString("avatar_large"));
user.setNickname(json.getString("screen_name"));
user.setOpenId(json.getString("id"));
user.setGender(genders.get(json.getString("gender")));
return user;
}
static Map genders = new HashMap();
static {
genders.put("m", "male");
genders.put("f", "female");
genders.put("n", "unkown");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy