android 集成QQ互联的问题

版权声明:转载请注明出处! https://blog.csdn.net/ziyejinwei1994/article/details/76282083

100044问题:需要打正式包 测试。

还有qq登录成功不执行回调:

需要改成下面的方式

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  mTencent.onActivityResultData(requestCode, resultCode, data, baseUiListener);
}

还有一个很奇葩的问题

public void getUserInfo ( )
     {
         mTencent . requestAsync ( Constants . GRAPH_SIMPLE_USER_INFO , null ,
                 Constants . HTTP_GET , new BaseApiListener ( "get_simple_userinfo" , false ) , null ) ;
     }

Constants.GRAPH_SIMPLE_USER_INFO 这个该死的参数根本就找不到。

然后通过百度前辈们的经验:

public void getUserInfo()
{
  UserInfo userInfo = new UserInfo(LoginActivity.this, mTencent.getQQToken());
  userInfo.getUserInfo(new BaseUiListener(LoginActivity.this));
  LLogUtils.i("userInfo:"+userInfo.toString());
}

重写回调

扫描二维码关注公众号,回复: 3368385 查看本文章

private class BaseUiListener implements IUiListener {
  private Context mContext;

  public BaseUiListener(Context mContext) {
    super();
    this.mContext = mContext;
  }
  @Override public void onComplete(Object o) {
    LLogUtils.i("values:"+o.toString());
    try {
      perJson(o.toString());
    } catch (JSONException e) {
      e.printStackTrace();
    }
  }

  @Override public void onError(UiError uiError) {
    ToastUtil.show("uiError:"+uiError.toString());
  }

  @Override public void onCancel() {
    ToastUtil.show("onCancel");
  }
}

private void perJson(String o) throws JSONException {
  JSONObject jsonObject=new JSONObject(o);
  if (jsonObject.optInt("ret")==0){
    String openID = jsonObject.optString("openid");
    String accessToken = jsonObject.optString("access_token");
    int expires = jsonObject.optInt("expires_in");
    mTencent.setOpenId(openID);
    mTencent.setAccessToken(accessToken,expires+"");
    getUserInfo();
  }
}
通过以上 方式获取到了用户的信息。希望能帮到你们。

猜你喜欢

转载自blog.csdn.net/ziyejinwei1994/article/details/76282083
今日推荐