【Android】集成QQ登录

注册腾讯开放平台(open.qq.com),并上传应用通过审核
下载SDK:
  http://wiki.open.qq.com/wiki/mobile/SDK下载

  因为只用到QQ登录,所以只要下载基础包就OK了。

api文档:http://wiki.open.qq.com/wiki/mobile/API调用说明#1.1_.E7.99.BB.E5.BD.95.2F.E6.A0.A1.E9.AA.8C.E7.99.BB.E5.BD.95.E6.80.81

代码集成:
  在AndroidManifest.xml中,加入:
  
<activity android:name="com.tencent.tauth.AuthActivity">
            <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>


        <activity android:name="com.tencent.connect.common.AssistActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="orientation|keyboardHidden|screenSize"
            />
  
  在登录的Activity中创建Tencent实例:
  mTencent=Tencent.createInstance(mAppId, context);
  设置回调监听:
  public void onActivityResult(int requestCode, int resultCode, Intent data){
          mTencent.onActivityResult(requestCode,requestCode,data);
  }
  创建回调函数:
public static class BaseUiListener implements IUiListener{


        @Override
        public void onComplete(Object o) {
            JSONObject response=(JSONObject)o;
            AndroidLog.d(TAG,"onComplete:"+response.toString());
        }


        @Override
        public void onError(UiError uiError) {
            AndroidLog.e(TAG, "onError:" + uiError.toString());
        }


        @Override
        public void onCancel() {
            AndroidLog.d(TAG,"onCancel");
        }
    }
  登录代码:
  if(!mTencent.isSessionValid()){
      mTencent.login(activity,"",new BaseUiListener ());
  }
  
  测试的时候,需要用正式签名的APP版本,因为tencent会检查签名是否和当初上传的APP一致。
  登录成功后的返回结果:
  onComplete:{"ret":0,"pay_token":"XXXXXXXXXXXXXXX","pf":"desktop_m_qq-10000144-android-2002-","query_authority_cost":73,"authority_cost":5883,"openid":"XXXXXXXXXXXXXXXXXXX","expires_in":7776000,"pfkey":"XXXXXXXXXXXXXXX","msg":"","access_token":"XXXXXXXXXXXX","login_cost":540}
  
  当APP在退出后,再次进行QQ登录时,可以先设置好openid和accesstoken,这样如果openid和accesstoken还有效的话,就不需要再次登录了:
  mTencent.setOpenId(openId);
  mTencent.setAccessToken(accessToken,null);//第二个参数是请求的授权时间,如果当前有效时间小于请求的授权时间,还是需要再次登录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值