腾讯开放平台 集成qq登录

sdk下载地址:http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD

下载好导入项目中。

在开放平台拿到App_Id:

private Tencent mTencent;
private String APP_ID = "1107203056";//App的App_Id
private IUiListener loginListener;
private String SCOPE = "all";
private IUiListener userInfoListener;

 

在view层的java文件中添加以下代码:

 //初始化QQ登录分享的需要的资源
    private void initQqLogin() {
        mTencent = Tencent.createInstance(APP_ID, this.getApplicationContext());
        //创建QQ登录回调接口
        loginListener = new IUiListener() {
            @Override
            public void onComplete(Object o) {
                //登录成功后调用的方法
                JSONObject jo = (JSONObject) o;
                Toast.makeText(QQActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
                Log.e("COMPLETE:-------->", jo.toString());
                String openID;
                try {
                    openID = jo.getString("openid");
                    String accessToken = jo.getString("access_token");
                    String expires = jo.getString("expires_in");
                    mTencent.setOpenId(openID);
                    mTencent.setAccessToken(accessToken, expires);
                } catch (JSONException e) {
                    e.printStackTrace();
                } }

            @Override
            public void onError(UiError uiError) {
                //登录失败后回调该方法
                Toast.makeText(QQActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
                Log.e("LoginError:", uiError.toString());
            }

            @Override
            public void onCancel() {
                //取消登录后回调该方法
                Toast.makeText(QQActivity.this, "取消登录", Toast.LENGTH_SHORT).show();
            }
        };
        userInfoListener = new IUiListener() {
            @Override
            public void onComplete(Object o) {
                if(o == null){
                    return;
                }
                try {
                    JSONObject jo = (JSONObject) o;
                    Log.e("JO:",jo.toString());
                    int ret = jo.getInt("ret");
                    String nickName = jo.getString("nickname");
                    String gender = jo.getString("gender");
                    String qq_2 = jo.getString("figureurl_qq_2");
//                    edit.putString("ret",ret+"");
//                    edit.putString("nickName",nickName);
//                    edit.putString("qq_2",qq_2);
//                    edit.commit();
                    Log.e("ret","-------->"+ret);
                    Toast.makeText(QQActivity.this, "你好," + nickName,Toast.LENGTH_LONG).show();

                } catch (Exception e) {
                }
            }
            @Override
            public void onError(UiError uiError) {
            }
            @Override
            public void onCancel() {
            }
        };
    }

重写这个方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == Constants.REQUEST_LOGIN) {
        if (resultCode == -1) {
            Tencent.onActivityResultData(requestCode, resultCode, data, loginListener);
            Tencent.handleResultData(data, loginListener);
            UserInfo info = new UserInfo(this, mTencent.getQQToken());
            info.getUserInfo(userInfoListener);
            startActivity(new Intent(this, MainActivity.class));
            finish();
        }
    }
}

依次导包

在需要的点击事件中添加:

initQqLogin();
mTencent.login(this, SCOPE, loginListener);

在清单文件中

<!-- 注册SDKActivity -->
<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="tencent1105602574" /> <!-- 开放平台获取的APPID -->
    </intent-filter>
</activity>
<activity android:name="com.tencent.connect.common.AssistActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:screenOrientation="portrait"/>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值