aardio 文档

aardio 范例: 调用飞书企业自建应用 API 给用户发送消息

//调用飞书企业自建应用 API 给用户发送消息
import console;
import web.feishu.restClient;

// =================配置区=================
var appId = "cli_a1b2c3d4e5f6g7h8"; // 替换为你的 App ID
var appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // 替换为你的 App Secret

// 二选一:按手机号或邮箱查询用户 open_id
var mobiles = ["13900000000"]; // 请替换为实际手机号
//var emails = ["test@example.com"]; // 请替换为实际邮箱
// =======================================

// 1. 创建飞书 REST 客户端。
// restClient 会自动获取、缓存并刷新 tenant_access_token,
// 后续调用 request/sendText 等方法都会自动携带 Authorization 头。
var client = web.feishu.restClient({
    appId = appId;
    appSecret = appSecret;
    //domain = "https://open.feishu.cn"; // 可省略
    source = "aardio-demo";
});

console.showLoading("正在获取 tenant_access_token...");
var token, err = client.getTenantToken();
if(!token){
    return console.errorPause("获取 Token 失败:", err);
}

// 实际项目不建议打印完整 token。
console.log("成功获取 Token。", "长度:", #token);

// 2. 根据用户手机或邮箱获取 open_id。
// 注意:contact/v3/users/batch_get_id 返回的 user_id 字段,
// 会根据 URL 参数 user_id_type=open_id 返回对应类型的 ID。
console.showLoading("正在根据手机或邮箱获取 open_id...");

var queryData = {
    mobiles = mobiles;
    //emails = emails;
};

var idRes, idErr = client.request(
    "/open-apis/contact/v3/users/batch_get_id?user_id_type=open_id",
    "POST",
    queryData
);

if(!idRes || idRes.code !== 0){
    return console.errorPause(
        "根据手机或邮箱获取 open_id 失败:",
        idErr || idRes[["msg"]] || idRes[["message"]]
    );
}

var receiveId = idRes[["data"]][["user_list"]][[1]][["user_id"]];
if(!receiveId){
    return console.errorPause("错误的手机或邮箱,未查询到 open_id。");
}

console.log("成功根据手机或邮箱获取到 open_id:", receiveId);

// 3. 发送文本消息。
// sendText(receiveId, receiveIdType, text) 会自动调用发送消息接口,
// 并自动将 content 转为飞书要求的 JSON 字符串。
console.showLoading("正在发送消息...");

var msgRes, msgErr = client.sendText(
    receiveId,
    "open_id",
    "你好!这是一条来自 aardio 调用 web.feishu.restClient 发送的自建应用 API 消息。"
);

// 4. 处理业务响应。
if(msgRes && msgRes.code === 0){
    console.log("消息发送成功!消息 ID:", msgRes.data.message_id);
}
else {
    console.error("消息发送失败:", msgErr || msgRes[["msg"]] || msgRes[["message"]]);
}

console.pause(true);

Markdown 格式