android 第三方登錄 QQ

jopen 8年前發布 | 21K 次閱讀 Android開發 移動開發

最新做第三方登錄,由于個人馬虎,害的自己折騰了一陣。這里只是簡單的記一下

1,jar包

android 第三方登錄 QQ - Jieth的個人頁面

2,配置AndroidManifest.xml

<activity android:name=".login.LoginActivity"
          android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>
<activity
    android:name="com.tencent.tauth.AuthActivity"
    android:launchMode="singleTask"
    android:noHistory="true" >
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="tencent222222" />
        <!-- 將222222換成自己的appid -->
    </intent-filter>
</activity>

<activity
    android:name="com.tencent.connect.common.AssistActivity"
    android:configChanges="orientation|keyboardHidden"
    android:screenOrientation="behind"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

3,LoginActivity調用

//222222換成自己的appid
Tencent mTencent = Tencent.createInstance("222222", this.getApplicationContext());
//all獲取全部
mTencent.login(this, "all", new IUiListener() {
    @Override
    public void onComplete(Object o) {
        Log.i("返回",o.toString());
    }
    @Override
    public void onError(UiError uiError) {
    }
    @Override
    public void onCancel() {
    }
});
//注銷
//mTencent.logout(this);

4,別忘了回調(說起來比較丟人,我就是因為這里沒怎么注意)

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == Constants.REQUEST_LOGIN){
        if(resultCode == Constants.ACTIVITY_OK){
            Log.i("onActivityResult",data.getStringExtra("key_action"));
            //如果少了這句,監聽器的沒效果。onComplete不會執行
            Tencent.handleResultData(data,loginListener);
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}

5,以上是授權獲取openid。下邊就是獲取授權用戶的基本信息了。授權成功后將onComplete(Object o)返回的數據設置到mTencent里

try {
    String token = object.getString(Constants.PARAM_ACCESS_TOKEN);
    String expires = object.getString(Constants.PARAM_EXPIRES_IN);
    String openId = object.getString(Constants.PARAM_OPEN_ID);
    //設置token
    mTencent.setAccessToken(token, expires);
    //設置openid
    mTencent.setOpenId(openId);
} catch (JSONException e) {
    e.printStackTrace();
}

6,拿到當前授權QQ號的昵稱,頭像之類的基本信息

 UserInfo userInfo = new UserInfo(this,mTencent.getQQToken());
 //和上邊授權的一樣
 userInfo.getUserInfo(new IUiListener(){...});


來自: http://my.oschina.net/Jieth/blog/591601

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!