前言
最近给app加入三方登录,由于比较多,所以就用的友盟统一登录,会比一个一个配置方便点
正文
先说QQ,微信,微博:
国内QQ,微信,微博三方登录其实还行,并没有太多坑,文档也挺完善的.
但是需要注意的就是你后台配置的签名和当前的签名是否一致,然后appid和appkey是否配置正确(比如粘贴的时候多粘了一个空格)
Twitter,Facebook,Instagram:
由于之前没有弄过Twitter,Facebook,Instagram的三方登录,所以配置过程一波三折
首先网络畅通(最起码测试机要畅通)
然后一般app后台配置没上线时都要求用测试账号(比如申请三方后台所用的账号)
Twitter:
配置完成后,需要调用
UMShareAPI.get(this).doOauthVerify();
而下面的这个api无法使用....
UMShareAPI.get(this).getPlatformInfo();
授权数据获取(需要accessToken和tokenSecret,但现在友盟不会直接给你)
openId 的key为: user_id
获取accessToken和tokenSecret,如下代码(debug了半个小时才找到..)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (THIRD_PARTY_TYPE == Ids.ThirdPlat_Twitter) {//如果是Twitter
//EXTRA_TOKEN=tk
//EXTRA_TOKEN_SECRET=ts
extra_token = data.getStringExtra("tk");
extra_token_secret = data.getStringExtra("ts");
}
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
获取授权成功后要及时的移除授权,否则下一次调用授权会失败
UMShareAPI.get(FirstLoginActivity.this).deleteOauth();
Facebook:
facebook还好,只需要注意测试用注册后台app的账号登录
然后 openId 的key为: uid accessToken 的key为 access_token
Instagram:(最6的登录)
这是我见过最6最有自己思想的登录 \手动滑稽 (没法在友盟上获取,得自己写)
首先先使用WebView加载一段网址:
https://api.instagram.com/oauth/authorize/?client_id=你的appid&redirect_uri=你的回调地址&response_type=token
ps:回调地址我觉得可以随便传
然后获取重定向后的地址,伪代码:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Uri url1 = request.getUrl();
if (url1 == null)
return false;
String url = url1.toString();
//他会给你重定向为 你的回调地址/#access_token=xxxxxxxxxxxxxxxx 重定向后的链接
if (url != null && url.indexOf("你的回调地址/#access_token=") == 0) {
String accessToken = url.replace("你的回调地址/#access_token=", "");//这样就获取到了你的access_token
}
return false;
}
});
然后就获取到了access_token
Instagram三方登录参考:https://blog.csdn.net/qq_38402659/article/details/89705419