APP使用QQ登录

注册腾讯开放平台,并上传应用通过审核
下载SDK:
  http://wiki.open.qq.com/wiki/mobile/SDK下载
  因为只用到QQ登录,所以只要下载基础包就OK了。
代码集成:
  在AndroidManifest.xml中,加入:
  

           
               
               
               
               
           

       



                    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);//第二个参数是请求的授权时间,如果当前有效时间小于请求的授权时间,还是需要再次登录。

你可能感兴趣的:(Android)