分享到 :

登录/校验登录态

A、接口使用场景
      通过调用Tencent类的login函数发起登录/校验登录态。

B、接口说明
      该接口具有两个作用,1. 如果开发者没有调用mTencent实例的setOpenId、setAccessToken接口,则该接口执行正常的登录操作;2. 如果开发者先调用mTencent实例的setOpenId、setAccessToken接口,则该接口执行校验登录态的操作。如果登录态有效,则返回成功给app,如果登录态失效,则会自动进入登录流程,将最新的登录态数据返回给app。
      建议开发者在每次app启动时调用一次该接口(先调用setOpenId、setAccessToken),以确保每次打开app时用户都是有登录态的。

C、接口方法
      int com.tencent.tauth.Tencent.login(Activity activity, String scope, IUiListener listener)
      int com.tencent.tauth.Tencent.login(Activity activity, String scope, IUiListener listener,boolean qrcode)

D、参数说明
      调用登录接口的参数说明如下:

参数参数说明
activity调用者activity。应用使用SDK时,会从应用自己的Activity跳转到SDK的Activity,应用调用SDK的Activity即为这里的调用者activity。
scope应用需要获得哪些接口的权限,由“,”分隔。例如:
SCOPE = “get_simple_userinfo,add_topic”;所有权限用“all”
listener回调接口,IUiListener实例。
qrcode是否开启二维码登录,没有安装手Q时候使用二维码登录,一般用电视等设备。
activity.mIntent(非方法参数)执行语句activity.getIntent().putExtra(AuthAgent.KEY_FORCE_QR_LOGIN, true);可以强制唤起扫码界面(无论是否安装手Q)

E、返回码说明
      0:正常
     -1: 异常
      1 : 使用Activity登陆
      2 : 使用H5登陆或显示下载页面

F、示例代码调用登录接口的示例代码如下:

private void doLogin() {
        IUiListener listener = new BaseUiListener() {
                @Override
                 protected void doComplete(JSONObject values) {
                        updateLoginButton();
                 }
        };
        mTencent.login(this, SCOPE, listener);
}

G、接收登录成功后返回的数据在调用login的Activity或者Fragment重写onActivityResult方法,示例代码如下:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        If (requestCode == Constants.REQUEST_LOGIN) {
                Tencent.onActivityResultData(requestCode,resultCode,data,listener);
        }
         super.onActivityResult(requestCode, resultCode, data);
}
返回顶部