发送微信段待办¶
本文档内容来源于 http://doc.myapps.cn/docs/common-script/common-script-1f1a4ue8r8nak
脚本说明¶
该脚本用于发送微信段待办消息。在MyApps平台中,可以通过微信接口向用户发送待办事项的提醒消息。
常见实现方式¶
方式1:发送微信待办消息(基本方式)¶
(function(){
var userId = "用户ID";
var todoTitle = "待办事项标题";
var todoContent = "待办事项内容";
var todoId = "待办ID";
// 发送微信待办消息
sendWechatTodo(userId, todoTitle, todoContent, todoId);
return "微信待办消息发送成功";
})();
方式2:发送当前用户的待办消息¶
(function(){
var currentUser = getWebUser();
var userId = currentUser.getId();
var todoTitle = "您有新的待办事项";
var todoContent = "请及时处理待办事项";
var todoId = "待办ID";
sendWechatTodo(userId, todoTitle, todoContent, todoId);
return "微信待办消息已发送";
})();
方式3:发送带链接的微信待办¶
(function(){
var userId = "用户ID";
var todoTitle = "待办事项标题";
var todoContent = "待办事项内容";
var todoId = "待办ID";
var todoUrl = "http://example.com/todo?id=" + todoId;
// 发送带链接的微信待办消息
sendWechatTodoWithLink(userId, todoTitle, todoContent, todoId, todoUrl);
return "微信待办消息发送成功";
})();
方式4:批量发送微信待办¶
(function(){
var userIds = ["用户ID1", "用户ID2", "用户ID3"];
var todoTitle = "待办事项标题";
var todoContent = "待办事项内容";
var todoId = "待办ID";
var successCount = 0;
var failCount = 0;
for(var i = 0; i < userIds.length; i++){
try{
sendWechatTodo(userIds[i], todoTitle, todoContent, todoId);
successCount++;
}catch(e){
failCount++;
}
}
return "成功: " + successCount + ", 失败: " + failCount;
})();
扩展示例¶
示例1:根据待办ID发送微信待办¶
(function(){
var todoId = "待办ID";
// 查询待办信息
var sql = "SELECT userid, title, content FROM t_todo WHERE id = '" + todoId + "'";
var todo = findBySQL(sql);
if(todo != null){
var userId = todo.getItemValueAsString("userid");
var title = todo.getItemValueAsString("title");
var content = todo.getItemValueAsString("content");
// 发送微信待办消息
sendWechatTodo(userId, title, content, todoId);
return "微信待办消息发送成功";
}else{
return "待办不存在";
}
})();
示例2:发送待办并格式化消息¶
(function(){
var userId = "用户ID";
var todoTitle = "待办事项标题";
var todoContent = "待办事项内容";
var todoId = "待办ID";
var createTime = format(new Date(), "yyyy-MM-dd HH:mm:ss");
// 格式化消息内容
var message = "【待办提醒】\n";
message += "标题: " + todoTitle + "\n";
message += "内容: " + todoContent + "\n";
message += "时间: " + createTime + "\n";
message += "请及时处理";
sendWechatTodo(userId, todoTitle, message, todoId);
return "微信待办消息发送成功";
})();
示例3:发送待办并记录日志¶
(function(){
var userId = "用户ID";
var todoTitle = "待办事项标题";
var todoContent = "待办事项内容";
var todoId = "待办ID";
println("开始发送微信待办消息");
println("用户ID: " + userId);
println("待办标题: " + todoTitle);
println("待办ID: " + todoId);
try{
sendWechatTodo(userId, todoTitle, todoContent, todoId);
println("微信待办消息发送成功");
return "发送成功";
}catch(e){
println("发送失败: " + e.getMessage());
return "发送失败: " + e.getMessage();
}
})();
示例4:发送待办并验证用户¶
(function(){
var userId = "用户ID";
var todoTitle = "待办事项标题";
var todoContent = "待办事项内容";
var todoId = "待办ID";
// 验证用户是否存在
var user = getUserById(userId);
if(user == null){
return "错误: 用户不存在";
}
// 验证用户是否绑定微信
var wechatId = user.getExtensionField("微信ID");
if(wechatId == null || wechatId.trim().length == 0){
return "错误: 用户未绑定微信";
}
// 发送微信待办消息
sendWechatTodo(userId, todoTitle, todoContent, todoId);
return "微信待办消息发送成功";
})();
示例5:发送待办并处理错误¶
(function(){
var userId = "用户ID";
var todoTitle = "待办事项标题";
var todoContent = "待办事项内容";
var todoId = "待办ID";
try{
sendWechatTodo(userId, todoTitle, todoContent, todoId);
return "微信待办消息发送成功";
}catch(e){
var errorMsg = e.getMessage();
if(errorMsg.indexOf("用户不存在") >= 0){
return "错误: 用户不存在";
}else if(errorMsg.indexOf("未绑定微信") >= 0){
return "错误: 用户未绑定微信";
}else if(errorMsg.indexOf("网络错误") >= 0){
return "错误: 网络连接失败,请稍后重试";
}else{
return "错误: " + errorMsg;
}
}
})();
示例6:发送待办并返回结果¶
(function(){
var userId = "用户ID";
var todoTitle = "待办事项标题";
var todoContent = "待办事项内容";
var todoId = "待办ID";
try{
var result = sendWechatTodo(userId, todoTitle, todoContent, todoId);
var response = {
success: true,
message: "微信待办消息发送成功",
todoId: todoId,
userId: userId
};
return JSON.stringify(response);
}catch(e){
var response = {
success: false,
message: "发送失败: " + e.getMessage(),
todoId: todoId,
userId: userId
};
return JSON.stringify(response);
}
})();
示例7:根据文档创建待办并发送微信¶
(function(){
var doc = getCurrentDocument();
var docId = doc.getId();
var docTitle = doc.getItemValueAsString("标题");
var assigneeId = doc.getItemValueAsString("负责人");
if(assigneeId == null || assigneeId.trim().length == 0){
return "错误: 未指定负责人";
}
// 创建待办
var todoTitle = "待处理: " + docTitle;
var todoContent = "您有一个新的待办事项需要处理";
var todoId = createTodo(assigneeId, todoTitle, todoContent, docId);
// 发送微信待办消息
sendWechatTodo(assigneeId, todoTitle, todoContent, todoId);
return "待办创建并发送微信消息成功";
})();
示例8:发送待办并设置优先级¶
(function(){
var userId = "用户ID";
var todoTitle = "【紧急】待办事项标题";
var todoContent = "待办事项内容";
var todoId = "待办ID";
var priority = "高"; // 优先级:高、中、低
// 根据优先级格式化标题
if(priority === "高"){
todoTitle = "【紧急】" + todoTitle;
}else if(priority === "中"){
todoTitle = "【重要】" + todoTitle;
}
sendWechatTodo(userId, todoTitle, todoContent, todoId);
return "微信待办消息发送成功";
})();
关键函数说明¶
sendWechatTodo(userId, title, content, todoId): 发送微信待办消息sendWechatTodoWithLink(userId, title, content, todoId, url): 发送带链接的微信待办消息getUserById(userId): 根据用户ID获取用户对象user.getExtensionField("微信ID"): 获取用户的微信IDgetWebUser(): 获取当前登录用户对象findBySQL(sql): 执行SQL查询并返回单条记录createTodo(userId, title, content, docId): 创建待办事项(如果支持)
微信待办消息说明¶
消息格式¶
- 标题: 待办事项的标题
- 内容: 待办事项的详细内容
- 待办ID: 待办事项的唯一标识
- 链接: 可选,点击后跳转到待办详情页面
发送要求¶
- 用户需要绑定微信账号
- 需要配置微信相关参数
- 消息内容需要符合微信格式要求
注意事项¶
- ⚠️ 用户存在性: 确保用户存在,否则无法发送
- ⚠️ 微信绑定: 确保用户已绑定微信账号
- ⚠️ 消息内容: 注意消息内容的格式和长度限制
- ⚠️ 待办ID: 确保待办ID有效,用于后续处理
- ⚠️ 错误处理: 建议添加try-catch进行错误处理
- ⚠️ 网络问题: 微信消息发送可能受网络影响,需要处理异常情况
- 发送微信待办消息可能需要配置微信相关参数
- 建议记录发送日志,方便追踪
- 可以结合待办创建流程,自动发送提醒
使用场景¶
- 待办事项创建时发送提醒
- 待办事项即将到期时发送提醒
- 待办事项状态变更时发送通知
- 批量待办提醒
- 重要待办事项提醒
如需查看完整脚本代码,请访问源文档链接。