第三方登录——QQ登录

第三方QQ登录有两种方式:

一种是通过友盟SDK,注册key,再通过腾讯开放平台的SDK来实现
另一种是直接通过腾讯开放平台直接实现

http://open.qq.com

通过实际操作,个人觉得直接通过腾讯开放平台来实现比较好用,所以本文所要介绍的就是这种直接通过腾讯开放平台来实现。
创建并配置工程:

1、下载SDK

下载地址:http://wiki.open.qq.com/wiki/mobile/SDK下载

2、新建工程,并导入SDK中的jar文件

mta-sdk-1.6.2.jar:这个包是必须导入的
open_sdk_r5788_lite.jar:精简包
open_sdk_r5788.jar:完整包
这两个包二选一,看需求

这里写图片描述

3、将jar包添加到依赖中
这里写图片描述

4、配置AndroidManifest
在应用的AndroidManifest.xml增加配置的节点下增加以下配置(注:不配置将会导致无法调用API);

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android: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" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent你的AppId" />
</intent-filter>
</activity>
<application>

据官方文档,SDK_V2.0引入了AssistActivity,开发者需在androidManifest.xml中注册。代码如下:

<activity android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize" 
/>
创建实例并实现登录:

具体代码如下

//第三方QQ登录
    public void login() {
        mTencent = Tencent.createInstance("1106107726", this.getApplicationContext());
        if (!mTencent.isSessionValid())
        {

            mTencent.login(this, "", iUiListener);
        }
    }
    private IUiListener iUiListener = new IUiListener() {
        @Override
        public void onComplete(Object o) {
            //这里做登录成功后的操作,比如将头像设置到控件中
            JSONObject obj = (JSONObject) o;

            try {
                String openID = obj.getString("openid");
                String accessToken = obj.getString("access_token");
                String expires = obj.getString("expires_in");
                mTencent.setOpenId(openID);
                mTencent.setAccessToken(accessToken, expires);
                QQToken qqToken = mTencent.getQQToken();
                userInfo = new UserInfo(getApplicationContext(), qqToken);
                userInfo.getUserInfo(new IUiListener() {
                    @Override
                    public void onComplete(Object o) {
                        JSONObject res = (JSONObject) o;
                        String nickName = res.optString("nickname");//获取昵称
                        String figureurl_qq_1 = res.optString("figureurl_qq_1");//获取图片
                    }

                    @Override
                    public void onError(UiError uiError) {

                    }

                    @Override
                    public void onCancel() {

                    }
                });
            } catch (JSONException e) {
                e.printStackTrace();
            }                      
        }

        @Override
        public void onError(UiError uiError) {

        }

        @Override
        public void onCancel() {

        }
    };
// 特别注意:
//应用调用Andriod_SDK接口时,如果要成功接收到回调,需要在调用接口的Activity的onActivityResult方法中增加如下代码:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        Tencent.onActivityResultData(requestCode,resultCode,data,iUiListener);
    }
要注意API的调用

1、登录、快速支付登录、应用分享、应用邀请等接口,回调:

IUiListener

2、上传图片、查看相册等,回调:

IRequestListener

参考资料:http://wiki.open.qq.com/wiki/移动应用接入wiki索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值