安卓三方登錄趟坑,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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章