本来给客户发送提醒信息都是使用微信公众号模板信息,最大的优点是没有数量上的限制,但是toB后企业微信应用越来越多,就设计到企业微信的开发问题了。
企业微信真的群内用户可以发送文本信息做为消息提醒,但是这个是有限制的。
企业微信的文本信息有数量限制。
在企业微信中,单次发送的文本消息长度最多为5000字,但超过部分将无法发送。同时,单个会话中,单次发送的消息数不超过50条。
而且企业微信的文本信息单个每日发送次数限制为20000条。这个数字和申请的企业微信账号的上限人数有关系,上限越高可以发送的文本数量就越多。
以下是一个使用Java发送企业微信文本信息的示例代码:
在拿到当前token后
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import net.sf.json.JSONObject;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
public class WeChatSender {
private static final String CORP_ID = "YOUR_CORP_ID"; // 替换为你的企业微信的CorpID
private static final String CORP_SECRET = "YOUR_CORP_SECRET"; // 替换为你的企业微信的CorpSecret
private static final String TO_USER = "USER_ID"; // 替换为接收消息的用户的ID
public static void main(String[] args) {
try {
sendTextMessage(TO_USER, "Hello, this is a test message!");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void sendTextMessage(String toUser, String content) throws Exception {
// 构建请求参数
Map<String, Object> params = new HashMap<>();
params.put("msgtype", "text");
params.put("text", new TextMessage(content));
params.put("touser", toUser);
// 序列化参数为JSON字符串
ObjectMapper mapper = new ObjectMapper();
String jsonParams = mapper.writeValueAsString(params);
// 发送请求
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + getAccessToken());
httpPost.setHeader("Content-Type", "application/json");
httpPost.setEntity(new StringEntity(jsonParams));
httpClient.execute(httpPost);
}
private static String getAccessToken() throws Exception {
// 获取访问令牌,这里省略了获取访问令牌的代码,你需要根据企业微信的API文档实现获取访问令牌的逻辑
return "YOUR_ACCESS_TOKEN"; // 替换为你的访问令牌
}
}