分享到 :

Server-Side登录模式

A、接口使用场景
    通过调用Tencent类的loginServerSide函数发起Server-Side模式登录。

B、接口说明
    调用该接口,会启动一个交互界面,完成用户登录和授权的交互流程,通过回调得到server返回的code和openId。其中code的值保存在access_token字段里面。
    当安装了手机QQ时,SDK会启用手机QQ的特定Activity,通过此Activity完成登录和授权功能。 当没有找到此Activity时,SDK会执行Oauth2.0的User-Agent流程,即显示一个包含WebView的对话框, 通过加载登录授权网页来完成登录和授权的交互流程。

C、接口方法
    public int com.tencent.tauth.Tencent.loginServerSide(Activity activity, String scope, IUiListener listener)
    public int com.tencent.tauth.Tencent.loginServerSide(Fragment fragment, String scope, IUiListener listener)

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、示例代码
    调用Server-Side模式登录接口的示例代码如下:

private void doLogin() {
         IUiListener listener = new BaseUiListener() {
                 @Override
                  protected void doComplete(JSONObject values) {
                           updateLoginButton();
                  }
         };
          mTencent.loginServerSide(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);
}
返回顶部