zoukankan      html  css  js  c++  java
  • 安卓第三方登录qq

    在腾讯开放平台下载sdk,另外需要提交审核,若想iOS与安卓共用同一个APPID,可先创建iOS或安卓应用后,点击页面右上角的关联再创建另外一个,这样APPID就是同一个了。

    下面贴关于QQ登录的代码,需要的权限和AndroidManifest里面的配置在文档有

    public void login_qq() {
    // Tencent类是SDK的主要实现类,开发者可通过Tencent类访问腾讯开放的OpenAPI。
    // 其中APP_ID是分配给第三方应用的appid,类型为String。
    mTencent = Tencent.createInstance(Constants.APP_ID_QQ, this.getApplicationContext());
    if (!mTencent.isSessionValid()) {
    mTencent.login(this, "all", loginListener);
    }
    }

    IUiListener loginListener = new BaseUiListener() {
    @Override
    protected void doComplete(JSONObject values) {
    initOpenidAndToken(values);
    updateUserInfo();
    }
    };

    //初始化QQ的openid和token,这一步是必须要的   这个地方,文档中包括有一些百度来的经验中没有提到(也许是我看的还不够仔细=-=),这是很重要的一步
    static String openId;

    public static void initOpenidAndToken(JSONObject jsonObject) {
    try {
    String token = jsonObject.getString(Constants.PARAM_ACCESS_TOKEN);
    String expires = jsonObject.getString(Constants.PARAM_EXPIRES_IN);
    openId = jsonObject.getString(Constants.PARAM_OPEN_ID);
    if (!TextUtils.isEmpty(token) && !TextUtils.isEmpty(expires)
    && !TextUtils.isEmpty(openId)) {
    mTencent.setAccessToken(token, expires);
    mTencent.setOpenId(openId);
    }
    } catch (Exception e) {
    }
    }

    private void updateUserInfo() {
    if (mTencent != null && mTencent.isSessionValid()) {
    IUiListener listener = new IUiListener() {
    @Override
    public void onError(UiError e) {

    }

    @Override
    public void onComplete(final Object response) {
    Message msg = new Message();
    msg.obj = response;
    msg.what = 0;
    mHandler.sendMessage(msg);

    }

    @Override
    public void onCancel() {

    }
    };
    UserInfo mInfo = new UserInfo(this, mTencent.getQQToken());
    mInfo.getUserInfo(listener);

    } else {
    }
    }

    Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
    if (msg.what == 0) {
    JSONObject response = (JSONObject) msg.obj;
    QQUserInfo info = new Gson().fromJson(response.toString(), QQUserInfo.class);
    String nickname = info.getNickname();
    String headimgurl = info.getFigureurl_qq_2();
    //这里通过解析就拿到了QQ的用户名和头像地址,根据应用中需要的操作,这一步算是完成了QQ登录
    }
    }
    };
  • 相关阅读:
    O(1)时间求出栈内元素最小值 小强斋
    图片的轮廓 小强斋
    png 图片的缩放 小强斋
    Dom4j 小强斋
    O(1)时间求出栈内元素最小值 小强斋
    图片的轮廓 小强斋
    png图片的读取 小强斋
    字符串的最大重复数 小强斋
    【Android】数据的四种存储方式
    【就业】签offer和签三方协议的不同
  • 原文地址:https://www.cnblogs.com/moonwhite/p/5817986.html
Copyright © 2011-2022 走看看