Class WeixinProxy


  • public class WeixinProxy
    extends Object
    微信企业号接口实现
    Since:
    JDK 1.6
    Author:
    jinyu(foxinmy@gmail.com)
    See Also:
    api文档
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String VERSION  
    • Constructor Summary

      Constructors 
      Constructor Description
      WeixinProxy()
      微信接口实现(使用weixin4j.properties配置的account账号信息, 使用FileCacheStorager文件方式缓存TOKEN)
      WeixinProxy​(com.foxinmy.weixin4j.cache.CacheStorager<com.foxinmy.weixin4j.model.Token> cacheStorager)
      微信接口实现(使用weixin4j.properties配置的account账号信息)
      WeixinProxy​(com.foxinmy.weixin4j.model.WeixinAccount weixinAccount, com.foxinmy.weixin4j.cache.CacheStorager<com.foxinmy.weixin4j.model.Token> cacheStorager)
      微信接口实现
      WeixinProxy​(com.foxinmy.weixin4j.token.PerTicketManager perTicketManager, com.foxinmy.weixin4j.token.TokenManager suiteTokenManager)
      第三方套件(永久授权码机制)
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      IdParameter addTagUsers​(int tagId, List<String> userIds, List<Integer> partyIds)
      新增标签成员(标签对管理组可见且未加锁,成员属于管理组管辖范围)
      com.foxinmy.weixin4j.http.weixin.ApiResult batchDeleteUser​(List<String> userIds)
      批量删除成员
      String batchInviteUser​(IdParameter parameter, Callback callback, String tips)
      批量邀请成员关注
      String batchReplaceParty​(String mediaId, Callback callback)
      批量覆盖部门,本接口以partyid为键,全量覆盖企业号通讯录组织架构,任务完成后企业号通讯录组织架构与提交的文件完全保持一致。
      String batchReplaceUser​(String mediaId, Callback callback)
      批量覆盖成员,本接口以userid为主键,全量覆盖企业号通讯录成员,任务完成后企业号通讯录成员与提交的文件完全保持一致。
      String batchSyncUser​(String mediaId, Callback callback)
      批量更新成员,本接口以userid为主键,增量更新企业号通讯录成员。
      String batchUploadParties​(List<Party> parties)
      批量上传部门
      String batchUploadUsers​(List<User> users)
      批量上传成员
      com.foxinmy.weixin4j.http.weixin.ApiResult clearChatNotify​(String targetId, String owner, ChatType chatType)
      清除会话未读状态
      com.foxinmy.weixin4j.model.media.MediaCounter countMaterialMedia​(int agentid)
      获取永久媒体素材的总数
      String createChat​(ChatInfo chatInfo)
      创建会话 如果会话id为空,程序会自动生成一个唯一ID
      com.foxinmy.weixin4j.http.weixin.ApiResult createMenu​(int agentid, List<com.foxinmy.weixin4j.model.Button> buttons)
      自定义菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式)
      int createParty​(Party party)
      创建部门(根部门的parentid为1)
      int createTag​(Tag tag)
      创建标签(创建的标签属于管理组;默认为未加锁状态)
      com.foxinmy.weixin4j.http.weixin.ApiResult createUser​(User user)
      创建成员
      com.foxinmy.weixin4j.http.weixin.ApiResult createUser​(User user, InputStream avatar)
      创建成员
      com.foxinmy.weixin4j.http.weixin.ApiResult deleteMaterialMedia​(int agentid, String mediaId)
      删除永久媒体素材
      com.foxinmy.weixin4j.http.weixin.ApiResult deleteMenu​(int agentid)
      删除菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式)
      com.foxinmy.weixin4j.http.weixin.ApiResult deleteParty​(int partyId)
      删除部门(不能删除根部门;不能删除含有子部门、成员的部门)
      com.foxinmy.weixin4j.http.weixin.ApiResult deleteTag​(int tagId)
      删除标签(管理组必须是指定标签的创建者 并且标签的成员列表为空)
      IdParameter deleteTagUsers​(int tagId, List<String> userIds, List<Integer> partyIds)
      删除标签成员(标签对管理组可见且未加锁,成员属于管理组管辖范围)
      com.foxinmy.weixin4j.http.weixin.ApiResult deleteUser​(String userid)
      删除成员
      List<com.foxinmy.weixin4j.tuple.MpArticle> downloadArticle​(int agentid, String mediaId)
      下载永久图文素材
      com.foxinmy.weixin4j.model.media.MediaDownloadResult downloadMedia​(int agentid, String mediaId)
      下载媒体文件
      AgentInfo getAgent​(int agentid)
      获取企业号某个应用的基本信息,包括头像、昵称、帐号类型、认证类型、可见范围等信息
      BatchResult getBatchResult​(String jobId)
      获取异步任务执行的结果
      ChatInfo getChat​(String chatId)
      获取会话
      IdParameter[] getKfList​(KfType kfType)
      获取客服列表
      List<com.foxinmy.weixin4j.model.Button> getMenu​(int agentid)
      查询菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式。)
      OauthApi getOauthApi()
      获取oauth授权API
      OUserInfo getOUserInfoByCode​(String authCode)
      获取企业号管理员登录信息
      Contacts getTagUsers​(int tagId)
      获取标签成员(管理组须拥有“获取标签成员”的接口权限,标签须对管理组可见;返回列表仅包含管理组管辖范围的成员)
      com.foxinmy.weixin4j.token.TokenManager getTicketManager​(com.foxinmy.weixin4j.type.TicketType ticketType)
      获取JSSDK Ticket的tokenManager
      com.foxinmy.weixin4j.token.TokenManager getTokenManager()
      token获取
      User getUser​(String userid)
      获取成员信息
      User getUserByCode​(String code)
      code获取userid(管理员须拥有agent的使用权限;agentid必须和跳转链接时所在的企业应用ID相同。)
      com.alibaba.fastjson.JSONObject getUserIdByCode​(String code)
      根据code获取成员ID信息
      List<String> getWechatServerIp()
      获取微信服务器IP地址
      com.foxinmy.weixin4j.model.WeixinAccount getWeixinAccount()
      获取微信账号信息
      InviteType inviteUser​(String userId, String tips)
      邀请成员关注(管理员须拥有该成员的查看权限)
      List<AgentOverview> listAgentOverview()
      获取应用概况列表
      List<com.foxinmy.weixin4j.model.media.MediaItem> listAllMaterialMedia​(int agentid, com.foxinmy.weixin4j.type.MediaType mediaType)
      获取全部的媒体素材
      List<User> listAllUser​(UserStatus userStatus)
      获取权限范围内的所有成员列表
      com.foxinmy.weixin4j.model.media.MediaRecord listMaterialMedia​(int agentid, com.foxinmy.weixin4j.type.MediaType mediaType, com.foxinmy.weixin4j.model.paging.Pageable pageable)
      获取媒体素材记录列表
      List<Party> listParty​(int partyId)
      查询部门列表(以部门的order字段从小到大排列)
      List<Tag> listTag()
      获取标签列表
      List<User> listUser​(int partyId)
      获取部门下所有状态成员(不进行递归)
      List<User> listUser​(int partyId, boolean fetchChild, UserStatus userStatus, boolean findDetail)
      获取部门成员
      String openid2userid​(String openid)
      openid转换成userid:该接口主要应用于使用微信支付、微信红包和企业转账之后的结果查询, 开发者需要知道某个结果事件的openid对应企业号内成员的信息时,可以通过调用该接口进行转换查询。
      com.foxinmy.weixin4j.http.weixin.ApiResult quitChat​(String chatId, String operator)
      退出会话
      com.foxinmy.weixin4j.http.weixin.ApiResult sendChatMessage​(ChatMessage message)
      发送会话消息
      com.foxinmy.weixin4j.http.weixin.ApiResult sendCustomeMessage​(CustomeMessage message)
      发送客服消息
      IdParameter sendNotifyMessage​(NotifyMessage message)
      发送消息提醒(需要管理员对应用有使用权限,对收件人touser、toparty、totag有查看权限,否则本次调用失败)
      com.foxinmy.weixin4j.http.weixin.ApiResult setAgent​(AgentSetter agentSet)
      设置企业应用的选项设置信息,如:地理位置上报等
      List<String> setChatMute​(List<ChatMute> chatMutes)
      设置成员接收到的消息是否提醒。主要场景是用于对接企业im的在线状态,如成员处于在线状态时,可以设置该成员的消息免打扰。当成员离线时,关闭免打扰状态 ,对微信端进行提醒。
      com.foxinmy.weixin4j.http.weixin.ApiResult updateChat​(ChatInfo chatInfo, String operator, List<String> addUsers, List<String> deleteUsers)
      更新会话
      String updateMaterialArticle​(int agentid, String mediaId, List<com.foxinmy.weixin4j.tuple.MpArticle> articles)
      修改永久图文素材
      com.foxinmy.weixin4j.http.weixin.ApiResult updateParty​(Party party)
      更新部门(如果非必须的字段未指定 则不更新该字段之前的设置值)
      com.foxinmy.weixin4j.http.weixin.ApiResult updateTag​(Tag tag)
      更新标签(管理组必须是指定标签的创建者)
      com.foxinmy.weixin4j.http.weixin.ApiResult updateUser​(User user)
      更新用户(如果非必须的字段未指定 则不更新该字段之前的设置值)
      com.foxinmy.weixin4j.http.weixin.ApiResult updateUser​(User user, InputStream avatar)
      更新用户(如果非必须的字段未指定 则不更新该字段之前的设置值)
      String uploadImage​(InputStream is, String fileName)
      上传图文消息内的图片:用于上传图片到企业号服务端,接口返回图片url,请注意,该url仅可用于图文消息的发送, 且每个企业每天最多只能上传100张图片。
      String uploadMaterialArticle​(int agentid, List<com.foxinmy.weixin4j.tuple.MpArticle> articles)
      上传永久图文素材
      com.foxinmy.weixin4j.model.media.MediaUploadResult uploadMedia​(int agentid, InputStream is, String fileName)
      上传媒体文件
      com.foxinmy.weixin4j.http.weixin.ApiResult userAuthsucc​(String userId)
      开启二次验证成功时调用(管理员须拥有userid对应员工的管理权限)
      String[] userid2openid​(String userid, int agentid)
      userid转换成openid:该接口使用场景为微信支付、微信红包和企业转账,企业号用户在使用微信支付的功能时, 需要自行将企业号的userid转成openid。 在使用微信红包功能时,需要将应用id和userid转成appid和openid才能使用。
    • Field Detail

      • VERSION

        public static final String VERSION
    • Constructor Detail

      • WeixinProxy

        public WeixinProxy()
        微信接口实现(使用weixin4j.properties配置的account账号信息, 使用FileCacheStorager文件方式缓存TOKEN)
      • WeixinProxy

        public WeixinProxy​(com.foxinmy.weixin4j.cache.CacheStorager<com.foxinmy.weixin4j.model.Token> cacheStorager)
        微信接口实现(使用weixin4j.properties配置的account账号信息)
        Parameters:
        cacheStorager - token管理
      • WeixinProxy

        public WeixinProxy​(com.foxinmy.weixin4j.model.WeixinAccount weixinAccount,
                           com.foxinmy.weixin4j.cache.CacheStorager<com.foxinmy.weixin4j.model.Token> cacheStorager)
        微信接口实现
        Parameters:
        weixinAccount - 账号信息
        cacheStorager - token管理
      • WeixinProxy

        public WeixinProxy​(com.foxinmy.weixin4j.token.PerTicketManager perTicketManager,
                           com.foxinmy.weixin4j.token.TokenManager suiteTokenManager)
        第三方套件(永久授权码机制)
        Parameters:
        perTicketManager - 第三方套件永久授权码 com.foxinmy.weixin4j.qy.api.SuiteApi#getPerCodeManager(String)
        suiteTokenManager - 第三方套件凭证token SuiteApi.getTokenManager()
        See Also:
        SuiteApi, WeixinSuiteProxy.getWeixinProxy(String, String)
    • Method Detail

      • getTokenManager

        public com.foxinmy.weixin4j.token.TokenManager getTokenManager()
        token获取
        Returns:
      • getOauthApi

        public OauthApi getOauthApi()
        获取oauth授权API
        Returns:
        See Also:
        OauthApi
      • getWeixinAccount

        public com.foxinmy.weixin4j.model.WeixinAccount getWeixinAccount()
        获取微信账号信息
        Returns:
      • getTicketManager

        public com.foxinmy.weixin4j.token.TokenManager getTicketManager​(com.foxinmy.weixin4j.type.TicketType ticketType)
        获取JSSDK Ticket的tokenManager
        Parameters:
        ticketType - 票据类型
        Returns:
      • sendNotifyMessage

        public IdParameter sendNotifyMessage​(NotifyMessage message)
                                      throws com.foxinmy.weixin4j.exception.WeixinException
        发送消息提醒(需要管理员对应用有使用权限,对收件人touser、toparty、totag有查看权限,否则本次调用失败)

        1) 发送人员列表存在错误的userid:执行发送,开发者需注意返回结果说明
        2)发送人员不在通讯录权限范围内:不执行发送任务,返回首个出错的userid
        3)发送人员不在应用可见范围内:不执行发送任务,返回首个出错的userid

        Parameters:
        message - 消息对象
        Returns:
        如果对应用或收件人、部门、标签任何一个无权限,则本次发送失败;如果收件人、部门或标签不存在,发送仍然执行,但返回无效的部分
        { "errcode": 0, "errmsg": "ok", "invaliduser": "UserID1", "invalidparty":"PartyID1", "invalidtag":"TagID1" }
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        NotifyApi, 发送接口说明, Text, Image, Voice, Video, File, News, MpNews, IdParameter
      • sendCustomeMessage

        public com.foxinmy.weixin4j.http.weixin.ApiResult sendCustomeMessage​(CustomeMessage message)
                                                                      throws com.foxinmy.weixin4j.exception.WeixinException
        发送客服消息
        Parameters:
        message - 消息对象
        Returns:
        发送结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        客服接口说明, NotifyApi, Text, Image, Voice, Video, File, CustomeMessage
      • getKfList

        public IdParameter[] getKfList​(KfType kfType)
                                throws com.foxinmy.weixin4j.exception.WeixinException
        获取客服列表
        Parameters:
        kfType - 客服类型 为空时返回全部类型的客服
        Returns:
        第一个元素为内部客服(internal),第二个参数为外部客服(external)
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        NotifyApi, IdParameter, 客服列表
      • createMenu

        public com.foxinmy.weixin4j.http.weixin.ApiResult createMenu​(int agentid,
                                                                     List<com.foxinmy.weixin4j.model.Button> buttons)
                                                              throws com.foxinmy.weixin4j.exception.WeixinException
        自定义菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式)
        Parameters:
        agentid - 应用ID
        buttons - 菜单列表
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MenuApi, 创建自定义菜单, Button
      • getMenu

        public List<com.foxinmy.weixin4j.model.Button> getMenu​(int agentid)
                                                        throws com.foxinmy.weixin4j.exception.WeixinException
        查询菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式。)
        Parameters:
        agentid - 应用ID
        Returns:
        菜单集合
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MenuApi, 查询菜单, Button
      • deleteMenu

        public com.foxinmy.weixin4j.http.weixin.ApiResult deleteMenu​(int agentid)
                                                              throws com.foxinmy.weixin4j.exception.WeixinException
        删除菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式)
        Parameters:
        agentid - 应用ID
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MenuApi, 删除菜单
      • uploadImage

        public String uploadImage​(InputStream is,
                                  String fileName)
                           throws com.foxinmy.weixin4j.exception.WeixinException
        上传图文消息内的图片:用于上传图片到企业号服务端,接口返回图片url,请注意,该url仅可用于图文消息的发送, 且每个企业每天最多只能上传100张图片。
        Parameters:
        is - 图片数据
        fileName - 文件名
        Returns:
        图片url
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        上传图文消息内的图片, MediaApi
      • uploadMedia

        public com.foxinmy.weixin4j.model.media.MediaUploadResult uploadMedia​(int agentid,
                                                                              InputStream is,
                                                                              String fileName)
                                                                       throws com.foxinmy.weixin4j.exception.WeixinException
        上传媒体文件

        正常情况下返回{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}, 否则抛出异常.

        Parameters:
        agentid - 企业应用ID(大于0时视为上传永久媒体文件)
        is - 媒体数据流
        fileName - 文件名
        Returns:
        上传到微信服务器返回的媒体标识
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MediaApi, MediaUploadResult, 上传临时素材文件说明, 上传永久素材文件说明
      • downloadMedia

        public com.foxinmy.weixin4j.model.media.MediaDownloadResult downloadMedia​(int agentid,
                                                                                  String mediaId)
                                                                           throws com.foxinmy.weixin4j.exception.WeixinException
        下载媒体文件
        Parameters:
        agentid - 企业应用Id(大于0时视为获取永久媒体文件)
        mediaId - 媒体ID
        Returns:
        媒体下载结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MediaDownloadResult, MediaApi, 获取临时媒体说明, 获取永久媒体说明
      • uploadMaterialArticle

        public String uploadMaterialArticle​(int agentid,
                                            List<com.foxinmy.weixin4j.tuple.MpArticle> articles)
                                     throws com.foxinmy.weixin4j.exception.WeixinException
        上传永久图文素材

        、新增的永久素材也可以在公众平台官网素材管理模块中看到,永久素材的数量是有上限的,请谨慎新增。图文消息素材和图片素材的上限为5000, 其他类型为1000

        Parameters:
        agentid - 企业应用的id
        articles - 图文列表
        Returns:
        上传到微信服务器返回的媒体标识
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MediaApi, 上传永久媒体素材, MpArticle
      • deleteMaterialMedia

        public com.foxinmy.weixin4j.http.weixin.ApiResult deleteMaterialMedia​(int agentid,
                                                                              String mediaId)
                                                                       throws com.foxinmy.weixin4j.exception.WeixinException
        删除永久媒体素材
        Parameters:
        agentid - 企业应用ID
        mediaId - 媒体素材的media_id
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MediaApi, 删除永久媒体素材
      • downloadArticle

        public List<com.foxinmy.weixin4j.tuple.MpArticle> downloadArticle​(int agentid,
                                                                          String mediaId)
                                                                   throws com.foxinmy.weixin4j.exception.WeixinException
        下载永久图文素材
        Parameters:
        agentid - 企业应用ID
        mediaId - 媒体素材的media_id
        Returns:
        图文列表
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MediaApi, MpArticle
      • updateMaterialArticle

        public String updateMaterialArticle​(int agentid,
                                            String mediaId,
                                            List<com.foxinmy.weixin4j.tuple.MpArticle> articles)
                                     throws com.foxinmy.weixin4j.exception.WeixinException
        修改永久图文素材
        Parameters:
        agentid - 企业应用的id
        mediaId - 上传后的media_id
        articles - 图文列表
        Returns:
        操作结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MediaApi, 修改永久媒体素材, MpArticle
      • countMaterialMedia

        public com.foxinmy.weixin4j.model.media.MediaCounter countMaterialMedia​(int agentid)
                                                                         throws com.foxinmy.weixin4j.exception.WeixinException
        获取永久媒体素材的总数
        Parameters:
        agentid - 企业应用id
        Returns:
        总数对象
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MediaApi, MediaCounter, 获取素材总数
      • listMaterialMedia

        public com.foxinmy.weixin4j.model.media.MediaRecord listMaterialMedia​(int agentid,
                                                                              com.foxinmy.weixin4j.type.MediaType mediaType,
                                                                              com.foxinmy.weixin4j.model.paging.Pageable pageable)
                                                                       throws com.foxinmy.weixin4j.exception.WeixinException
        获取媒体素材记录列表
        Parameters:
        agentid - 企业应用ID
        mediaType - 素材的类型,图片(image)、视频(video)、语音 (voice)、图文(news)、文件(file)
        pageable - 分页数据
        Returns:
        媒体素材的记录对象
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MediaApi, MediaRecord, MediaType, MediaItem, Pageable, Pagedata, 获取素材列表
      • listAllMaterialMedia

        public List<com.foxinmy.weixin4j.model.media.MediaItem> listAllMaterialMedia​(int agentid,
                                                                                     com.foxinmy.weixin4j.type.MediaType mediaType)
                                                                              throws com.foxinmy.weixin4j.exception.WeixinException
        获取全部的媒体素材
        Parameters:
        agentid - 企业应用id
        mediaType - 媒体类型
        Returns:
        素材列表
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MediaApi
      • createParty

        public int createParty​(Party party)
                        throws com.foxinmy.weixin4j.exception.WeixinException
        创建部门(根部门的parentid为1)
        Parameters:
        party - 部门对象
        Returns:
        部门ID
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        Party, 创建部门说明, PartyApi
      • updateParty

        public com.foxinmy.weixin4j.http.weixin.ApiResult updateParty​(Party party)
                                                               throws com.foxinmy.weixin4j.exception.WeixinException
        更新部门(如果非必须的字段未指定 则不更新该字段之前的设置值)
        Parameters:
        party - 部门对象
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        Party, 更新部门说明, PartyApi
      • listParty

        public List<Party> listParty​(int partyId)
                              throws com.foxinmy.weixin4j.exception.WeixinException
        查询部门列表(以部门的order字段从小到大排列)
        Parameters:
        partyId - 部门ID。获取指定部门ID下的子部门 传入0表示获取全部子部门
        Returns:
        部门列表
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        Party, 获取部门列表, PartyApi
      • deleteParty

        public com.foxinmy.weixin4j.http.weixin.ApiResult deleteParty​(int partyId)
                                                               throws com.foxinmy.weixin4j.exception.WeixinException
        删除部门(不能删除根部门;不能删除含有子部门、成员的部门)
        Parameters:
        partyId - 部门ID
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        删除部门说明, PartyApi
      • batchUploadParties

        public String batchUploadParties​(List<Party> parties)
                                  throws com.foxinmy.weixin4j.exception.WeixinException
        批量上传部门
        Parameters:
        parties - 部门列表
        Returns:
        上传后的mediaId
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MediaApi, BatchApi, 批量任务
      • createUser

        public com.foxinmy.weixin4j.http.weixin.ApiResult createUser​(User user)
                                                              throws com.foxinmy.weixin4j.exception.WeixinException
        创建成员
        Parameters:
        user - 成员对象
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        User, 创建成员说明, UserApi
      • createUser

        public com.foxinmy.weixin4j.http.weixin.ApiResult createUser​(User user,
                                                                     InputStream avatar)
                                                              throws com.foxinmy.weixin4j.exception.WeixinException
        创建成员
        Parameters:
        user - 成员对象
        avatar - 头像文件 可为空
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        User, 创建成员说明, UserApi
      • updateUser

        public com.foxinmy.weixin4j.http.weixin.ApiResult updateUser​(User user)
                                                              throws com.foxinmy.weixin4j.exception.WeixinException
        更新用户(如果非必须的字段未指定 则不更新该字段之前的设置值)
        Parameters:
        user - 成员对象
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        User, 更新成员说明, UserApi
      • updateUser

        public com.foxinmy.weixin4j.http.weixin.ApiResult updateUser​(User user,
                                                                     InputStream avatar)
                                                              throws com.foxinmy.weixin4j.exception.WeixinException
        更新用户(如果非必须的字段未指定 则不更新该字段之前的设置值)
        Parameters:
        user - 成员对象
        avatar - 头像文件
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        User, 更新成员说明, UserApi
      • getUser

        public User getUser​(String userid)
                     throws com.foxinmy.weixin4j.exception.WeixinException
        获取成员信息
        Parameters:
        userid - 成员唯一ID
        Returns:
        成员对象
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        User, 获取成员说明, UserApi
      • getUserByCode

        public User getUserByCode​(String code)
                           throws com.foxinmy.weixin4j.exception.WeixinException
        code获取userid(管理员须拥有agent的使用权限;agentid必须和跳转链接时所在的企业应用ID相同。)
        Parameters:
        code - 通过员工授权获取到的code,每次员工授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期
        Returns:
        成员对象
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        User, UserApi, 企业获取code, 根据code获取成员信息
      • getOUserInfoByCode

        public OUserInfo getOUserInfoByCode​(String authCode)
                                     throws com.foxinmy.weixin4j.exception.WeixinException
        获取企业号管理员登录信息
        Parameters:
        authCode - oauth2.0授权企业号管理员登录产生的code
        Returns:
        登陆信息
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        授权获取企业号管理员登录信息, OUserInfo
      • getUserIdByCode

        public com.alibaba.fastjson.JSONObject getUserIdByCode​(String code)
                                                        throws com.foxinmy.weixin4j.exception.WeixinException
        根据code获取成员ID信息
        Parameters:
        code - 通过员工授权获取到的code,每次员工授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期
        Returns:
        换取结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        UserApi, oauth授权获取用户信息
      • listUser

        public List<User> listUser​(int partyId,
                                   boolean fetchChild,
                                   UserStatus userStatus,
                                   boolean findDetail)
                            throws com.foxinmy.weixin4j.exception.WeixinException
        获取部门成员
        Parameters:
        partyId - 部门ID
        fetchChild - 是否递归获取子部门下面的成员
        userStatus - 成员状态 status可叠加 未填写则默认为未关注(4)
        findDetail - 是否获取详细信息
        Returns:
        成员列表
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        User, 获取部门成员说明, UserApi
      • listAllUser

        public List<User> listAllUser​(UserStatus userStatus)
                               throws com.foxinmy.weixin4j.exception.WeixinException
        获取权限范围内的所有成员列表
        Parameters:
        userStatus - 成员状态 未填写则默认为全部状态下的成员
        Returns:
        成员列表
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        UserApi
      • listUser

        public List<User> listUser​(int partyId)
                            throws com.foxinmy.weixin4j.exception.WeixinException
        获取部门下所有状态成员(不进行递归)
        Parameters:
        partyId - 部门ID
        Returns:
        成员列表
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        UserApi
      • deleteUser

        public com.foxinmy.weixin4j.http.weixin.ApiResult deleteUser​(String userid)
                                                              throws com.foxinmy.weixin4j.exception.WeixinException
        删除成员
        Parameters:
        userid - 成员ID
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        删除成员说明, UserApi
      • batchDeleteUser

        public com.foxinmy.weixin4j.http.weixin.ApiResult batchDeleteUser​(List<String> userIds)
                                                                   throws com.foxinmy.weixin4j.exception.WeixinException
        批量删除成员
        Parameters:
        userIds - 成员列表
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        批量删除成员说明UserApi
      • inviteUser

        public InviteType inviteUser​(String userId,
                                     String tips)
                              throws com.foxinmy.weixin4j.exception.WeixinException
        邀请成员关注(管理员须拥有该成员的查看权限)
        Parameters:
        userId - 成员ID
        tips - 推送到微信上的提示语(只有认证号可以使用)。当使用微信推送时,该字段默认为“请关注XXX企业号”,邮件邀请时,该字段无效。
        Returns:
        调用结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        UserApi, 邀请成员关注说明
      • userAuthsucc

        public com.foxinmy.weixin4j.http.weixin.ApiResult userAuthsucc​(String userId)
                                                                throws com.foxinmy.weixin4j.exception.WeixinException
        开启二次验证成功时调用(管理员须拥有userid对应员工的管理权限)
        Parameters:
        userid - 成员ID
        Returns:
        调用结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        UserApi, 二次验证说明
      • createTag

        public int createTag​(Tag tag)
                      throws com.foxinmy.weixin4j.exception.WeixinException
        创建标签(创建的标签属于管理组;默认为未加锁状态)
        Parameters:
        tag - 标签对象;
        标签名称,长度为1~64个字节,标签名不可与其他标签重名;
        标签id,整型, 指定此参数时新增的标签会生成对应的标签id,不指定时则以目前最大的id自增。
        Returns:
        标签ID
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        创建标签说明, TagApi
      • updateTag

        public com.foxinmy.weixin4j.http.weixin.ApiResult updateTag​(Tag tag)
                                                             throws com.foxinmy.weixin4j.exception.WeixinException
        更新标签(管理组必须是指定标签的创建者)
        Parameters:
        tag - 标签信息
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        更新标签说明, Tag, TagApi
      • deleteTag

        public com.foxinmy.weixin4j.http.weixin.ApiResult deleteTag​(int tagId)
                                                             throws com.foxinmy.weixin4j.exception.WeixinException
        删除标签(管理组必须是指定标签的创建者 并且标签的成员列表为空)
        Parameters:
        tagId - 标签ID
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        删除标签说明, TagApi
      • listTag

        public List<Tag> listTag()
                          throws com.foxinmy.weixin4j.exception.WeixinException
        获取标签列表
        Returns:
        标签列表
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        获取标签列表说明, Tag, TagApi
      • getTagUsers

        public Contacts getTagUsers​(int tagId)
                             throws com.foxinmy.weixin4j.exception.WeixinException
        获取标签成员(管理组须拥有“获取标签成员”的接口权限,标签须对管理组可见;返回列表仅包含管理组管辖范围的成员)
        Parameters:
        tagId - 标签ID
        Returns:
        成员列表Contacts#getUsers和部门列表 Contacts#getPartyIds
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        User, 获取标签成员说明, TagApi
      • addTagUsers

        public IdParameter addTagUsers​(int tagId,
                                       List<String> userIds,
                                       List<Integer> partyIds)
                                throws com.foxinmy.weixin4j.exception.WeixinException
        新增标签成员(标签对管理组可见且未加锁,成员属于管理组管辖范围)
        Parameters:
        tagId - 标签ID
        userIds - 企业成员ID列表,注意:userlist、partylist不能同时为空
        partyIds - 企业部门ID列表,注意:userlist、partylist不能同时为空
        Returns:
        非法的userIds和partyIds
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        新增标签成员说明, TagApi, IdParameter
      • deleteTagUsers

        public IdParameter deleteTagUsers​(int tagId,
                                          List<String> userIds,
                                          List<Integer> partyIds)
                                   throws com.foxinmy.weixin4j.exception.WeixinException
        删除标签成员(标签对管理组可见且未加锁,成员属于管理组管辖范围)
        Parameters:
        tagId - 标签ID
        userIds - 企业成员ID列表,注意:userlist、partylist不能同时为空
        partyIds - 企业部门ID列表,注意:userlist、partylist不能同时为空
        Returns:
        非法的userIds和partyIds
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        删除标签成员说明, TagApi, IdParameter
      • getWechatServerIp

        public List<String> getWechatServerIp()
                                       throws com.foxinmy.weixin4j.exception.WeixinException
        获取微信服务器IP地址
        Returns:
        IP地址
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        HelperApi, 获取IP地址
      • getAgent

        public AgentInfo getAgent​(int agentid)
                           throws com.foxinmy.weixin4j.exception.WeixinException
        获取企业号某个应用的基本信息,包括头像、昵称、帐号类型、认证类型、可见范围等信息
        Parameters:
        agentid - 授权方应用id
        Returns:
        应用信息
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        AgentInfo, AgentApi, 企业号应用的信息
      • setAgent

        public com.foxinmy.weixin4j.http.weixin.ApiResult setAgent​(AgentSetter agentSet)
                                                            throws com.foxinmy.weixin4j.exception.WeixinException
        设置企业应用的选项设置信息,如:地理位置上报等
        Parameters:
        agentSet - 设置参数
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        AgentSetter, AgentApi, 设置企业号信息
      • batchInviteUser

        public String batchInviteUser​(IdParameter parameter,
                                      Callback callback,
                                      String tips)
                               throws com.foxinmy.weixin4j.exception.WeixinException
        批量邀请成员关注
        Parameters:
        parameter - 成员ID,标签ID,部门ID
        callback - 接收任务执行结果的回调地址等信息
        tips - 推送到微信上的提示语(只有认证号可以使用)。当使用微信推送时,该字段默认为“请关注XXX企业号”,邮件邀请时,该字段无效。
        Returns:
        异步任务id,最大长度为64字符
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        IdParameter, Callback, BatchApi, 邀请成员关注
      • batchSyncUser

        public String batchSyncUser​(String mediaId,
                                    Callback callback)
                             throws com.foxinmy.weixin4j.exception.WeixinException
        批量更新成员,本接口以userid为主键,增量更新企业号通讯录成员。

        1.模板中的部门需填写部门ID,多个部门用分号分隔,部门ID必须为数字
        2.文件中存在、通讯录中也存在的成员,更新成员在文件中指定的字段值
        3.文件中存在、通讯录中不存在的成员,执行添加操作
        4.通讯录中存在、文件中不存在的成员,保持不变

        Parameters:
        mediaId - 带user信息的cvs文件上传后的media_id
        callback - 接收任务执行结果的回调地址等信息
        Returns:
        异步任务id,最大长度为64字符
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        Callback, BatchApi, 批量更新成员
      • batchReplaceUser

        public String batchReplaceUser​(String mediaId,
                                       Callback callback)
                                throws com.foxinmy.weixin4j.exception.WeixinException
        批量覆盖成员,本接口以userid为主键,全量覆盖企业号通讯录成员,任务完成后企业号通讯录成员与提交的文件完全保持一致。

        1.模板中的部门需填写部门ID,多个部门用分号分隔,部门ID必须为数字
        2.文件中存在、通讯录中也存在的成员,完全以文件为准
        3.文件中存在、通讯录中不存在的成员,执行添加操作
        4.通讯录中存在、文件中不存在的成员,执行删除操作。出于安全考虑,如果需要删除的成员多于50人, 且多于现有人数的20%以上,系统将中止导入并返回相应的错误码

        Parameters:
        mediaId - 带userid信息的cvs文件上传后的media_id
        callback - 接收任务执行结果的回调地址等信息
        Returns:
        异步任务id,最大长度为64字符
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        Callback, BatchApi, 批量覆盖成员
      • batchUploadUsers

        public String batchUploadUsers​(List<User> users)
                                throws com.foxinmy.weixin4j.exception.WeixinException
        批量上传成员
        Parameters:
        users - 成员列表
        Returns:
        上传后的mediaId
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        MediaApi, BatchApi, 批量任务
      • batchReplaceParty

        public String batchReplaceParty​(String mediaId,
                                        Callback callback)
                                 throws com.foxinmy.weixin4j.exception.WeixinException
        批量覆盖部门,本接口以partyid为键,全量覆盖企业号通讯录组织架构,任务完成后企业号通讯录组织架构与提交的文件完全保持一致。

        1.文件中存在、通讯录中也存在的部门,执行修改操作
        2.文件中存在、通讯录中不存在的部门,执行添加操作
        3.文件中不存在、通讯录中存在的部门,当部门为空时,执行删除操作
        4.CSV文件中,部门名称、部门ID、父部门ID为必填字段,部门ID必须为数字;排序为可选字段,置空或填0不修改排序

        Parameters:
        mediaId - 带partyid信息的cvs文件上传后的media_id
        callback - 接收任务执行结果的回调地址等信息
        Returns:
        异步任务id,最大长度为64字符
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        Callback, BatchApi, 批量覆盖部门
      • userid2openid

        public String[] userid2openid​(String userid,
                                      int agentid)
                               throws com.foxinmy.weixin4j.exception.WeixinException
        userid转换成openid:该接口使用场景为微信支付、微信红包和企业转账,企业号用户在使用微信支付的功能时, 需要自行将企业号的userid转成openid。 在使用微信红包功能时,需要将应用id和userid转成appid和openid才能使用。
        Parameters:
        userid - 企业号内的成员id 必填
        agentid - 需要发送红包的应用ID,若只是使用微信支付和企业转账,则无需该参数 传入0或负数则忽略
        Returns:
        结果数组 第一个元素为对应的openid 第二个元素则为应用的appid(如果有)
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        UserApi, userid与openid互换
      • openid2userid

        public String openid2userid​(String openid)
                             throws com.foxinmy.weixin4j.exception.WeixinException
        openid转换成userid:该接口主要应用于使用微信支付、微信红包和企业转账之后的结果查询, 开发者需要知道某个结果事件的openid对应企业号内成员的信息时,可以通过调用该接口进行转换查询。
        Parameters:
        openid - 在使用微信支付、微信红包和企业转账之后,返回结果的openid
        Returns:
        该openid在企业号中对应的成员userid
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        UserApi, userid与openid互换
      • createChat

        public String createChat​(ChatInfo chatInfo)
                          throws com.foxinmy.weixin4j.exception.WeixinException
        创建会话 如果会话id为空,程序会自动生成一个唯一ID
        Parameters:
        chatInfo - 会话信息
        Returns:
        会话ID
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        ChatApi, ChatInfo, 创建会话
      • getChat

        public ChatInfo getChat​(String chatId)
                         throws com.foxinmy.weixin4j.exception.WeixinException
        获取会话
        Parameters:
        chatId - 会话ID
        Returns:
        会话信息
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        ChatApi, ChatInfo, 获取会话
      • updateChat

        public com.foxinmy.weixin4j.http.weixin.ApiResult updateChat​(ChatInfo chatInfo,
                                                                     String operator,
                                                                     List<String> addUsers,
                                                                     List<String> deleteUsers)
                                                              throws com.foxinmy.weixin4j.exception.WeixinException
        更新会话
        Parameters:
        chatInfo - 会话信息 至少保持会话ID不能为空
        operator - 操作人userid
        addUsers - 会话新增成员列表
        deleteUsers - 会话退出成员列表
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        ChatApi, ChatInfo, 修改会话信息
      • quitChat

        public com.foxinmy.weixin4j.http.weixin.ApiResult quitChat​(String chatId,
                                                                   String operator)
                                                            throws com.foxinmy.weixin4j.exception.WeixinException
        退出会话
        Parameters:
        chatId - 会话ID
        operator - 操作人userid
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        ChatApi, 退出会话
      • clearChatNotify

        public com.foxinmy.weixin4j.http.weixin.ApiResult clearChatNotify​(String targetId,
                                                                          String owner,
                                                                          ChatType chatType)
                                                                   throws com.foxinmy.weixin4j.exception.WeixinException
        清除会话未读状态
        Parameters:
        targetId - 会话值,为userid|chatid,分别表示:成员id|会话id
        owner - 会话所有者的userid
        chatType - 会话类型:single|group,分别表示:群聊|单聊
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        ChatApi, 清除会话未读状态
      • setChatMute

        public List<String> setChatMute​(List<ChatMute> chatMutes)
                                 throws com.foxinmy.weixin4j.exception.WeixinException
        设置成员接收到的消息是否提醒。主要场景是用于对接企业im的在线状态,如成员处于在线状态时,可以设置该成员的消息免打扰。当成员离线时,关闭免打扰状态 ,对微信端进行提醒。
        Parameters:
        chatMutes - 提醒参数
        Returns:
        列表中不存在的成员,剩余合法成员会继续执行。
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        ChatApi, ChatMute, 设置成员新消息免打扰
      • sendChatMessage

        public com.foxinmy.weixin4j.http.weixin.ApiResult sendChatMessage​(ChatMessage message)
                                                                   throws com.foxinmy.weixin4j.exception.WeixinException
        发送会话消息
        Parameters:
        message - 消息对象
        Returns:
        处理结果
        Throws:
        com.foxinmy.weixin4j.exception.WeixinException
        See Also:
        ChatApi, ChatMessage, 发送消息