Skip to content

企业微信,获取用户时信息报空指针错误 #1619

Closed
@sdlszjb

Description

@sdlszjb

简要描述

我用的企业微信是中油定制的企业微信。在获取数据的时候,我的extattr中没有type属性。因此在解析的时候,type是Null,就在

  private void buildExtraAttrs(JsonObject o, WxCpUser user) {
    JsonArray attrJsonElements = o.get(EXTRA_ATTR).getAsJsonObject().get("attrs").getAsJsonArray();
    for (JsonElement attrJsonElement : attrJsonElements) {
      final Integer type = GsonHelper.getInteger(attrJsonElement.getAsJsonObject(), "type");
      ---》 这里报错 final WxCpUser.Attr attr = new WxCpUser.Attr().setType(type)
        .setName(GsonHelper.getString(attrJsonElement.getAsJsonObject(), "name"));
      user.getExtAttrs().add(attr);

      switch (type) {
        case 0: {
          attr.setTextValue(GsonHelper.getString(attrJsonElement.getAsJsonObject().get("text").getAsJsonObject(), "value"));
          break;
        }
        case 1: {
          final JsonObject web = attrJsonElement.getAsJsonObject().get("web").getAsJsonObject();
          attr.setWebTitle(GsonHelper.getString(web, "title"))
            .setWebUrl(GsonHelper.getString(web, "url"));
          break;
        }
        default://ignored
      }
    }
  }

模块版本情况

        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-cp</artifactId>
            <version>3.8.0</version>
        </dependency>

详细描述

经过测试:

    @Test
    void testAttr() {
        Integer type = null;
        WxCpUser.Attr attr = new WxCpUser.Attr();
        attr.setType(type);
    }

在传递的type为Null的时候,就会报空指针错误。

而我用的中油即时通的cgi-bin/user/get api的时候,response中extattr":{"attrs":[{"name":"员工编号","value":"xxxxx"}]}就只有这样,没有type或者咱们sdk中所写的那些attr,希望能修改一下。

即时通API

{
   "errcode": 0,
   "errmsg": "ok",
   "userid": "zhangsan",
   "name": "李四",
   "department": [1, 2],
   "order": [2, 10],
   "position": "后台工程师1",
   "positions": ["后台工程师1","后台工程师2"],
   "mobile": "15913215421",
   "hide_mobile": 0,
   "gender": "1",
   "email": "zhangsan@gzdev.com",
   "is_leader_in_dept": [1, 0],
   "avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0",
   "telephone": "020-123456",
   "english_name": "jackzhang",
   "extattr": {"attrs":[{"name":"爱好","value":"旅游"},{"name":"卡号","value":"1234567234"}]}
   "status": 1,
   "enable": 0,
   "qr_code": "https://wwlocal.qq.com/wework_admin/userQRCode?vcode=vc2140a8b3c6207c74&lvc=vcf6f1acfdc4b45088"
}

日志

https://paste.ubuntu.com/p/ZXVyfxmmtm/

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions