跳转至

发送微信段待办

本文档内容来源于 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"): 获取用户的微信ID
  • getWebUser(): 获取当前登录用户对象
  • findBySQL(sql): 执行SQL查询并返回单条记录
  • createTodo(userId, title, content, docId): 创建待办事项(如果支持)

微信待办消息说明

消息格式

  • 标题: 待办事项的标题
  • 内容: 待办事项的详细内容
  • 待办ID: 待办事项的唯一标识
  • 链接: 可选,点击后跳转到待办详情页面

发送要求

  • 用户需要绑定微信账号
  • 需要配置微信相关参数
  • 消息内容需要符合微信格式要求

注意事项

  • ⚠️ 用户存在性: 确保用户存在,否则无法发送
  • ⚠️ 微信绑定: 确保用户已绑定微信账号
  • ⚠️ 消息内容: 注意消息内容的格式和长度限制
  • ⚠️ 待办ID: 确保待办ID有效,用于后续处理
  • ⚠️ 错误处理: 建议添加try-catch进行错误处理
  • ⚠️ 网络问题: 微信消息发送可能受网络影响,需要处理异常情况
  • 发送微信待办消息可能需要配置微信相关参数
  • 建议记录发送日志,方便追踪
  • 可以结合待办创建流程,自动发送提醒

使用场景

  • 待办事项创建时发送提醒
  • 待办事项即将到期时发送提醒
  • 待办事项状态变更时发送通知
  • 批量待办提醒
  • 重要待办事项提醒

如需查看完整脚本代码,请访问源文档链接。