QQ第三方登录示例

1. 注册成为腾讯开发者(登录时使用QQ号码和密码,需要上传开发者手持身份证的照片)

http://wiki.open.qq.com/wiki/%E9%A6%96%E9%A1%B5

 

2. 接入移动应用,获取applicationid和secret key

 

3. 下载SDK(当前最新版本为3.1.0),内含官方的完整DEMO

 

4. 新建项目,按照官方指导文档搭建环境:

http://wiki.open.qq.com/wiki/%E5%88%9B%E5%BB%BA%E5%B9%B6%E9%85%8D%E7%BD%AE%E5%B7%A5%E7%A8%8B

 

4.1 复制jar文件

 

4.2 修改AndroidManifes.xml 添加权限和两个Activity

 

<uses-permissionandroid:name="android.permission.INTERNET" />

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" />

 

<application>

<activity

android:name="com.tencent.tauth.AuthActivity"

android:noHistory="true"

android:launchMode="singleTask" >

<intent-filter>

<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT"/>

<categoryandroid:name="android.intent.category.BROWSABLE" />

<data android:scheme="tencent你的AppId" />

</intent-filter>

</activity>

<activityandroid:name="com.tencent.connect.common.AssistActivity"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:configChanges="orientation|keyboardHidden|screenSize"

/>

 

<application>

 

5. 参考SDK中的官方案例进行开发

5.1 需要两个与登录相关的属性

   

Tencent主要负责登录、登出、获取登录账号的个人信息等。这些操作均为异步进行,操作结果以JSONObject对象的形式从服务器传递到本地。要获取结果,必须提供IUiListener监听器,在回调方法中接收结果。

 

5.2 初始化tencent对象

   

 

login方法就是进行登录操作,对应的还有logou方法。

 

5.3 listener为监听器,需要声明为属性,因为需要在onActivityResult方法使用到该对象(见第6步)。

监听器中有三个回调方法,分别是onError,onComplete和onCancel

任何成功的操作都将回调onComplete方法,并将操作结果JSONObject作为参数传入方法。参数使用的是Object类型,所以需要做一次类型的强制转换。


代码的红色部分,为处理tencent.login方法结果的代码。从回调方法的JSONObject参数中获得token、expires和opinId三个值设置给tencent对象的对应属性。

 

5.4 设置完毕后,执行绿色部分的代码。利用UserInfo对象以及设置好的tencent对象来获得当前登录用户的个人信息。获取个人信息也是异步过程,因此也需要一个监听器,监听器类型依然使用IUiListener。如果获得个人信息成功后,会回调监听器的onComplete方法,并将封装了个人信息的JSONObject作为参数传入。

 

5.5 展开绿色框中的onComplete方法


从JSONObject取得相应的内容进行呈现。头像属性是一个URL地址,所以需要进行网络图片的加载,这里使用了Picasso类库。

 

6. 需要特别注意的是,如果IUiListener要发挥作用接受回调,必须要重写onActivityResult方法,代码如下:


没有这行代码,IUiListener监听器的回调方法是不会被回调的!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值