The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Name

QQ::weixin::work

DESCRIPTION

腾讯企业微信->服务端API接口文档

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/90664

服务端API开放了丰富的能力接口,开发者可以借助接口能力,实现企业服务及企业微信的集成。

支持的能力,通过目录导航可以快速预览,目录树按功能块聚合归类,如通讯录管理、消息推送等。

企业开发流程如下:

    1.获取企业微信的CorpID和CorpSecret:企业微信管理员通过启用应用,获取CorpID和CorpSecret

    2.开发对接相关接口:开发测试应用,对接企业微信接口

权限说明

每个应用有不同的secret,代表了对应用的不同权限

FUNCTION

gettoken(corpid,corpsecrect);

获取ACCESS_TOKEN

SYNOPSIS

https://developer.work.weixin.qq.com/document/path/91039

参数说明

    参数          必须  说明
    corpid      是   企业ID,获取方式参考:术语说明-corpid L<https://work.weixin.qq.com/api/doc/90000/90135/91039#14953/corpid>
    corpsecret  是   应用的凭证密钥,获取方式参考:术语说明-secret L<https://work.weixin.qq.com/api/doc/90000/90135/91039#14953/secret>

RETURN 返回结果

  {
    "errcode": 0,
    "errmsg": "ok",
    "access_token": "accesstoken000001",
    "expires_in": 7200
  }

RETURN 参数说明

    参数              说明
    errcode            出错返回码,为0表示成功,非0表示调用失败
    errmsg             返回码提示语
    access_token         获取到的凭证,最长为512字节
    expires_in     凭证的有效时间(秒)

注意事项

  开发者需要缓存access_token,用于后续接口的调用(注意:不能频繁调用gettoken接口,否则会受到频率拦截)。当access_token失效或过期时,需要重新获取。

  access_token的有效期通过返回的expires_in来传达,正常情况下为7200秒(2小时),有效期内重复获取返回相同结果,过期后获取会返回新的access_token。

  由于企业微信每个应用的access_token是彼此独立的,所以进行缓存时需要区分应用来进行存储。

  access_token至少保留512字节的存储空间。

  企业微信可能会出于运营需要,提前使access_token失效,开发者应实现access_token失效时重新获取的逻辑。

getcallbackip(access_token);

获取企业微信服务器的ip段 最后更新:2023/11/29

SYNOPSIS

https://developer.work.weixin.qq.com/document/path/90238#获取企业微信服务器的ip段

请求说明:

企业微信在回调企业指定的URL时,是通过特定的IP发送出去的。如果企业需要做防火墙配置,那么可以通过这个接口获取到所有相关的IP段。IP段有变更可能,当IP段变更时,新旧IP段会同时保留一段时间。建议企业每天定时拉取IP段,更新防火墙设置,避免因IP段变更导致网络不通。

参数说明

        参数          必须  说明
    access_token        是       调用接口凭证

RETURN 返回结果

        {
                "errcode": 0,
                "errmsg": "ok",
                "ip_list": ["101.226.103.*", "101.226.62.*"]
        }

RETURN 参数说明

        参数       类型       说明
    errcode     int     错误码,0表示成功,非0表示调用失败
    errmsg      string  错误信息,调用失败会有相关的错误信息返回
    ip_list     StringArray     企业微信回调的IP段

注意事项

  若调用失败,会返回errcode及errmsg(判断是否调用失败,根据errcode存在并且值非0)

  根据errcode值非0,判断调用失败。以下是access_token过期的返回示例:

  {
    "ip_list":[],
    "errcode":42001,
    "errmsg":"access_token expired, hint: [1576065934_28_e0fae07666aa64636023c1fa7e8f49a4], from ip: 9.30.0.138, more info at https://open.work.weixin.qq.com/devtool/query?e=42001"
  }

get_api_domain_ip(access_token);

获取企业微信API域名IP段

SYNOPSIS

https://developer.work.weixin.qq.com/document/path/92520 API域名IP即qyapi.weixin.qq.com的解析地址,由开发者调用企业微信端的接入IP。如果企业需要做防火墙配置,那么可以通过这个接口获取到所有相关的IP段。IP段有变更可能,当IP段变更时,新旧IP段会同时保留一段时间。建议企业每天定时拉取IP段,更新防火墙设置,避免因IP段变更导致网络不通。

参数说明

    参数          必须  说明
    access_token        是       调用接口凭证

RETURN 返回结果

  {
    "ip_list":[
      "182.254.11.176",
      "182.254.78.66"
      ],
      "errcode":0,
      "errmsg":"ok"
  }

RETURN 参数说明

    参数       类型       说明
    ip_list     StringArray     企业微信回调的IP段
    errcode     int     错误码,0表示成功,非0表示调用失败
    errmsg      string  错误信息,调用失败会有相关的错误信息返回

注意事项

  若调用失败,会返回errcode及errmsg(判断是否调用失败,根据errcode存在并且值非0)

  根据errcode值非0,判断调用失败。以下是access_token过期的返回示例:

  {
    "ip_list":[],
    "errcode":42001,
    "errmsg":"access_token expired, hint: [1576065934_28_e0fae07666aa64636023c1fa7e8f49a4], from ip: 9.30.0.138, more info at https://open.work.weixin.qq.com/devtool/query?e=42001"
  }