收藏
回答

同一个外部联系人,不同调用方(企业/第三方服务商)获取到的ExternalUserId是不同的?

你好,我的身份是"企业微信开发服务商",开发了一个网页版应用,并已成功上线;

现有A,B,C三家企业“从服务商网站发起”授权安装了我的应用,我拿到了3家“授权企业的access_token”,根据企业成员的userId调用“获取客户列表”接口,接口地址:https://qyapi.weixin.qq.com/cgi-bin/externalcontact/list?access_token=ACCESS_TOKEN&userid=USERID

场景一:

A企业下A1,A2员工分别添加同一个名为“大明”的“企微外部联系人”;

https://qyapi.weixin.qq.com/cgi-bin/externalcontact/list?access_token=xxxx&userid=a1

{
    "code": 200,
    "msg": "ok",
    "data": {
        "errcode": 0,
        "errmsg": "ok",
        "external_userid": [
            "wowhy-CwAAm9LfghQsi_khkt5A0AaTOA",
            "wmwhy-CwAA8_oOv6qC0ZO_Zmm6GWYZ2A"//大明
        ]
    }
}

https://qyapi.weixin.qq.com/cgi-bin/externalcontact/list?access_token=xxxx&userid=a2

{
    "code": 200,
    "msg": "ok",
    "data": {
        "errcode": 0,
        "errmsg": "ok",
        "external_userid": [
            "wowhy-CwAApJjrEwmd6RbWwH1f_D6mxA",
            "wmwhy-CwAA8_oOv6qC0ZO_Zmm6GWYZ2A"//大明
        ]
    }
}

结论:同一家企业,不同成员,添加同一个外部联系人,external_userid相同;

场景二:

A,B,C三家授权企业,分别有成员A1,B1,C1,添加了同一个名为“大明”的“企微外部联系人”;

授权A企业:

https://qyapi.weixin.qq.com/cgi-bin/externalcontact/list?access_token=xaaaaax&userid=a1

{
    "code": 200,
    "msg": "ok",
    "data": {
        "errcode": 0,
        "errmsg": "ok",
        "external_userid": [
            "wowhy-CwAAvoCcjoox-4v8vsNwHWycXg",
            "wowhy-CwAAPvdVt9oenuLmBfM61SVGCA",
            "wowhy-CwAAvux8tHWtJ1yfdEqJLFp7Dg",
            "wmwhy-CwAArKEIvGMvAUC7vmejpyjYdw",
            "wmwhy-CwAA177eQLeBnPBNfeFEaplaJw",
            "wmwhy-CwAAodNubE6Tv2eZulfWiR0E5g"//大明
        ]
    }
}

授权B企业:

https://qyapi.weixin.qq.com/cgi-bin/externalcontact/list?access_token=xbbbbbx&userid=b1

{
    "code": 200,
    "msg": "ok",
    "data": {
        "errcode": 0,
        "errmsg": "ok",
        "external_userid": [
            "wmwhy-CwAA177eQLeBnPBNfeFEaplaJw",
            "wmwhy-CwAAodNubE6Tv2eZulfWiR0E5g"//大明
        ]
    }
}


授权C企业:

https://qyapi.weixin.qq.com/cgi-bin/externalcontact/list?access_token=xccccccx&userid=c1

{
    "code": 200,
    "msg": "ok",
    "data": {
        "errcode": 0,
        "errmsg": "ok",
        "external_userid": [
            "wmwhy-CwAA8_oOv6qC0ZO_Zmm6GWYZ2A",
            "wmwhy-CwAAodNubE6Tv2eZulfWiR0E5g"//大明
        ]
    }
}

结论:不同企业,不同成员,添加同一个外部联系人,external_userid相同;

引用官网:

关于ExternalUserId

ExternalUserId是企业微信外部联系人的标识,但需要开发者(尤其是第三方开发者)注意的是,对于同一个外部联系人,不同调用方(企业/第三方服务商)获取到的ExternalUserId是不同的


我通过调用接口发现“不同企业,同一个外部联系人,external_userid是相同的”。

请问是我以上2个场景的“结论的错误的”,还是我引用官网的理解有误呢?

谢谢!

最后一次编辑于  2021-05-28
回答关注问题邀请回答
收藏

1 个回答

  • 企业微信运营专员-千夜
    企业微信运营专员-千夜
    2021-06-01

    你好,这里使用的是授权企业授权返回的accesstoken调用还是企业内部客户联系的secret获取的accesstoken调用获取的,如果是授权企业授权返回的accesstoken调用接口,是第三方调用方式,那对于同一个外部联系人,返回的是同一个externaluserid,如果是用企业客户联系secret获取的accesstoken获取的也是一样的可以通过下对应的corpid看下

    2021-06-01
    有用
    回复 11
    • 李刚
      李刚
      2021-06-02
      thanks!
      引用题主:现有A,B,C三家企业“从服务商网站发起”授权安装了我的应用,我拿到了3家“授权企业的access_token”;


      你好,是第三方调用方式!



      结论:同一家企业,不同成员,添加同一个外部联系人,external_userid相同;
      结论:不同企业,不同成员,添加同一个外部联系人,external_userid相同;
      上面2个结论是没问题的么?我怎么觉得和官网的“关于Externa UserId”部分有冲突呢?
      2021-06-02
      回复
    • 企业微信运营专员-千夜
      企业微信运营专员-千夜
      2021-06-03回复李刚
      没有问题的,因为是使用的第三方调用,即授权企业返回的临时授权码换取的token,这里对于调用方即第三方服务商,第三方服务商获取相同的外部联系人externaluserid是一样的,文档说明的不一致是指授权企业本身使用客户联系的secret换取的accesstoken和第三方通过授权返回的accesstoken来调用有区别,你可以试下使用企业A的客户联系secret获取accesstoken来获取这个外部联系人的externaluserid和第三方获取的进行对比
      2021-06-03
      1
      回复
    • 李刚
      李刚
      2021-06-04回复企业微信运营专员-千夜
      明白了,thanks.
      2021-06-04
      回复
    • 许小姐YY
      许小姐YY
      2021-07-15
      您好,那同一企业下,不同的自建应用,external_userid也应该是一致的吧
      2021-07-15
      回复
    • 企业微信运营专员-千夜
      企业微信运营专员-千夜
      2021-07-16回复许小姐YY
      是的,externaluserid只有区分企业和第三方
      2021-07-16
      回复
    查看更多(6)
登录 后发表内容