QQ授权登陆并获取qq个人信息

编程知识 更新时间:2023-05-03 03:39:54

首先做好准备工作http://wiki.open.qq/wiki/%E9%A6%96%E9%A1%B5    http://www.zhouyi339去官网下载最新sdk.

第一步

 

 <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="tencent222222" />//这是腾讯给的测试号,自己申请的直接替换,注意替换的时候不要把tencent替换了,只替换2222

        </intent-filter>
    </activity>

    <activity
        android:name="com.tencent.connectmon.AssistActivity"
        android:configChanges="orientation|keyboardHidden"
        android:screenOrientation="behind"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
</application>

加入到自己的AndroidManifest.xml配置中。

易景达起名 取名 免费起名

第二步

 

//在activity中重写onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Tencent.onActivityResultData(requestCode, resultCode, data, new BaseUiListener());
}
第三步开始初始化并发起登陆请求
 
//qq登陆 private void qqLogin() { showProgressDialog("请稍后"); qqApi = Tencent.createInstance(Constants.QQ_APP_ID, App.getInstance());//Constants.QQ_APP_ID="222222";官方的测试后期自己替换
 

//Session 是否有效  易景达起名 取名 免费起名 周易起名 

  if (!qqApi.isSessionValid()) {
       qqApi.login(this, "all", new BaseUiListener()); 
   } else {//有效就先退出再登陆   
       qqApi.logout(this); 
       qqApi.login(this, "all", new BaseUiListener());
    }
}

//baseUiListener  名字大全 免费名字

 
//qq授权登陆与获取用户信息 private class BaseUiListener implements IUiListener { @Override  public void onComplete(Object response) { hideProgress(); try { showToast("登陆成功"); String openidString = ((JSONObject) response).getString("openid"); String access_token = ((JSONObject) response).getString("access_token"); String expires = ((JSONObject) response).getString("expires_in"); Log.e("//", openidString + "onComplete: " + response.toString()); qqApi.setAccessToken(access_token, expires); qqApi.setOpenId(openidString); QQToken token = qqApi.getQQToken(); userInfo = new UserInfo(LoginActivity.this, token);//这个UserInfo类是sdk封装好的 userInfo.getUserInfo(new IUiListener() {//获取用户信息  @Override  public void onComplete(Object response) {
		   //这里获取qq个人信息成功,发送到handler解析
                    Message message = new Message();
                    message.what = QQ_INFO;
                    message.obj = response;
                    handler.sendMessage(message);
                }

                @Override
                public void onError(UiError uiError) {

                }

                @Override
                public void onCancel() {

                }
            });


        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onError(UiError uiError) {
        hideProgress();
        showToast("授权失败");
    }

    @Override
    public void onCancel() {
        hideProgress();
        showToast("已取消");
    }
}

第四步(最后一步)

 
private final int QQ_INFO = 1024;//qq个人信息
 
Handler handler = new Handler() { @Override  public void handleMessage(Message msg) { switch (msg.what) { case QQ_INFO: 
JSONObject response = (JSONObject) msg.obj;  Gson gson = new Gson();  qqUserInEntity = gson.fromJson(String.valueOf(response), QQUserInfoEntity.class);//QQUserInfoEntity.class 根据获取的QQ信息建的bean

break; } }};

 

//这是授权成功与获取个人信息打印的logo

 

 E/haha: 82C65DB9B33D25087AE5A25C563BA7E0onComplete: {"ret":0,"pay_token":"2AC075C33D3052C13B589925FCE12041","pf":"desktop_m_qq-10000144-android-2002-","query_authority_cost":688,"authority_cost":0,"openid":"82C65DB9B33D25087AE5A25C563BA7E0","expires_in":7776000,"pfkey":"e2c799337db9503d294cc5b4bad75e5c","msg":"","access_token":"E70EAF33130549785D8D917ABFB569C8","login_cost":732}
 E/haha: onComplete: {"is_yellow_year_vip":"0","ret":0,"figureurl_qq_1":"http:\/\/q.qlogo\/qqapp\/222222\/82C65DB9B33D25087AE5A25C563BA7E0\/40","figureurl_qq_2":"http:\/\/q.qlogo\/qqapp\/222222\/82C65DB9B33D25087AE5A25C563BA7E0\/100","nickname":"以前…现在…未来…","yellow_vip_level":"0","is_lost":0,"msg":"","city":"达州","figureurl_1":"http:\/\/qzapp.qlogo\/qzapp\/222222\/82C65DB9B33D25087AE5A25C563BA7E0\/50","vip":"0","level":"0","figureurl_2":"http:\/\/qzapp.qlogo\/qzapp\/222222\/82C65DB9B33D25087AE5A25C563BA7E0\/100","province":"四川","is_yellow_vip":"0","gender":"男","figureurl":"http:\/\/qzapp.qlogo\/qzapp\/222222\/82C65DB9B33D25087AE5A25C563BA7E0\/30"}

 

更多推荐

QQ授权登陆并获取qq个人信息

本文发布于:2023-04-30 10:29:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/141b239225ff9b618390253c77ea1753.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:个人信息   QQ   qq

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 114043文章数
  • 28908阅读数
  • 0评论数