android 第三方登錄 QQ
最新做第三方登錄,由于個人馬虎,害的自己折騰了一陣。這里只是簡單的記一下
1,jar包
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(){...});
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!