首页 > 学院 > 开发设计 > 正文

第三方QQ登录

2019-11-09 15:18:14
字体:
来源:转载
供稿:网友

我也不怎么会整理知识点, 就是把自己用到的QQ登录步骤以及源码拷过来,供以后学习查看,希望大家指点互相学习。

说起QQ登录,大家在熟悉不过,今天我把具体的实现步骤和注释写出:

一,导入QQ登录需要的jar包

下载地址:

http://download.csdn.net/detail/baidu_28842815/9751446

二,写入AndroidManifest.xml

<!-- TODO GAME SDK QQ接入配置 START -->        <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="tencent1105782337" />                <!-- TODO GAME 这里为游戏QQ登录的配置,游戏需要修改为自己手Q的appid -->            </intent-filter>        </activity>        <activity            android:name="com.tencent.connect.common.AssistActivity"            android:configChanges="orientation|keyboardHidden"            android:screenOrientation="portrait"            android:theme="@android:style/Theme.Translucent.NoTitleBar" />        <!-- TODO GAME SDK QQ接入配置 END -->注意data中tencent必须有,后跟自己已应用包名在“腾讯开放平台”上申请的appid

以下是平台地址:http://open.qq.com/上方找到应用接入

<data android:scheme="tencent1105782337" />

三,在java代码编写具体实现步骤

1.导入import

PRivate Tencent mTencent;private IUiListener loginListener;2.创建对象
mTencent = Tencent.createInstance(appid, this);

3.添加授权登录监听器

loginListener = new IUiListener() {			@Override			public void onError(UiError error) {				Log.i(TAG, "登录失败" + error);				LoginActivity.this.finish();			}			@Override			public void onComplete(Object value) {				if (value == null) {					return;				}				try {					JSONObject json = (JSONObject) value;					int ret = json.getInt("ret");					Log.i(TAG, "QQ登录返回json:" + json.toString());					if (ret == 0) {						final String accessToken = json.getString("access_token");						final String openid = json.getString("openid");						final String expires_in = json.getString("expires_in");						/**如果后台需要openid来做登录处理,在此处编写网络请求*/						mTencent.setOpenId(openid);						mTencent.setAccessToken(accessToken, expires_in);						QQToken qqToken = mTencent.getQQToken();						UserInfo info = new UserInfo(activity, qqToken);						/** 获取用户部分信息监听器*/						info.getUserInfo(new IUiListener() {							@Override							public void onError(UiError error) {							}							@Override							public void onComplete(Object value) {								JSONObject json = (JSONObject) value;								Log.i(TAG, "QQ登录返回用户信息:" + json.toString());							}							@Override							public void onCancel() {							}						});					}				} catch (JSONException e) {					e.printStackTrace();				}			}			@Override			public void onCancel() {				Log.i(TAG, "登录取消");				LoginActivity.this.finish();			}		};4.点击QQ登录按钮

// 如果session无效,就开始登录if (!mTencent.isSessionValid()) {	// 要所有权限,"all",不然会再次申请增量权限	mTencent.login(activity, "all", loginListener);}

5.做登录返回数据接收

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {	Tencent.onActivityResultData(requestCode, resultCode, data, loginListener);}这一步必不可少!

好了,QQ登录实现到此为止,希望对大家有用!

QQAPI:

http://wiki.open.qq.com/wiki/mobile/API%E8%B0%83%E7%94%A8%E8%AF%B4%E6%98%8E#1.1_.E7.99.BB.E5.BD.95.2F.E6.A0.A1.E9.AA.8C.E7.99.BB.E5.BD.95.E6.80.81


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表