安卓三方登录趟坑,QQ,微信,微博,Twitter,Facebook,Instagram

前言

最近给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

发布了42 篇原创文章 · 获赞 192 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_33505109/article/details/90726247