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