背景
最近想使用qq的授权登录功能来进行app快捷登录,却被被官网的文档搞得头晕目眩,尝试了很久之后才成功回调得到数据,所以记录一下
准备
- 登录腾讯开放平台, 进入管理中心,创建你的应用
- 填写应用资料的时候可以先只填写部分内容,需要先把安装包上传(可以先用签名打个demo包,开放平台会自动识别包名和签名,可能集成授权登录的时候会进行识别)
- 进入sdk下载页面下载最新的android sdk,文档也在该页面。主要是看创建实例并实现回调和QQ登录和注销这两部分内容
记得记录下自己的app ID
开放平台app id信息开始
- 在AndroidManifest配置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="1106260548" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
- 在activity 的初始化代码中创建tencent实例(一般是onCreate方法中)
Tencent mTencent=Tencent.createInstance("你的app ID 字符串形式", myApplication)
3.调用登录方法(可以在按钮的点击事件里面调用),需要加上回调监听器IUiListener作为参数,(然而好像并没有进行回调)
IUiListener listener=new IUiListener(){
@Override
public void onComplete(Object o) {
//成功的回调 o 是一个 返回内容的json,可以自己toast看一下内容
}
@Override
public void onError(UiError uiError) {
//错误的回调
}
@Override
public void onCancel() {
//取消的回调
}
}
/* 第二个参数是Scope,标名应用需要获得哪些API的权限,由","分隔。
例如:SCOPE = "get_user_info,add_t";所有权限用"all" */
mTencent.login(activity, "get_simple_userinfo",listener)
4.在activity 中重写onActivityResult方法,得知登陆授权操作的结果
//listener还是上面的那个listener
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Tencent.onActivityResultData(requestCode,resultCode,data,listener);
}
结束
登录大功告成了,接下来就照着官方文档拿信息搞事情吧
网友评论