现在的很多app都会支持第三方登录,所以就在这里记录一下自己使用过的方法。
一、友盟
具体步骤参照官方文档即可。我要说的是,具体在代码中怎么使用,可以参考官方提供的as项目:social_sdk_example_as。这里面有登录的具体实现。
二、使用非集成化的方法
也就是使用各个平台自己的api来实现登录。比如说想使用QQ的登录,就可以在代码中这样使用:
mTencent.login(this, "all", mTencentUIListener);
其中,mTencentUIListener是回调接口:
private IUiListener mTencentUIListener = new IUiListener() {
@Override
public void onComplete(Object o) {
if (o != null && o instanceof JSONObject) {
JSONObject json = (JSONObject) o;
mTencent.setOpenId(json.optString("openid"));
mTencent.setAccessToken(json.optString("access_token"), json.optString("expires_in"));
UserInfo userInfo = new UserInfo(RegisterActivity.this, mTencent.getQQToken());
userInfo.getUserInfo(new IUiListener() {
@Override
public void onComplete(Object o) {
if (o != null && o instanceof JSONObject) {
JSONObject infoJson = (JSONObject) o;
String result = infoJson.optString("ret");
String nickName = infoJson.optString("nickname");
String avatarUrl = infoJson.optString("figureurl_qq_2");
if (!TextUtils.isEmpty(result) && TextUtils.equals(result, "0")) {
HixgoClient.getInstance().loginThirdParty(mTencent.getOpenId(), nickName, avatarUrl, 2, new NetworkSubscriber<BaseMessageEntity>(RegisterActivity.this) {
@Override
public void onNext(BaseMessageEntity data) {
super.onNext(data);
if (data.isOKCode()) {
BusinessManager.getInstance().login();
Toast.makeText(RegisterActivity.this, "" + data.msg, Toast.LENGTH_SHORT).show();
finish();
}
}
});
} else {
}
}
}
@Override
public void onError(UiError uiError) {
}
@Override
public void onCancel() {
}
});
}
}
@Override
public void onError(UiError uiError) {
}
@Override
public void onCancel() {
}
};
类似的,可以使用平台提供的api去实现微信,新浪微博的登录。
总结:
我用过的就是上面的两种方法,反正就是怎么简单怎么来,可能以后会去尝试其他的方法。