AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Feishu Push

skill-kweaver-ai-kweaver-dip-feishu-push · by kweaver-ai

>-

No reviews yet
0 installs
25 views
0.0% view→install

Install

$ agentstack add skill-kweaver-ai-kweaver-dip-feishu-push

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-kweaver-ai-kweaver-dip-feishu-push)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Feishu Push? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Feishu Push Message Skill

通过飞书开放平台 API 向指定飞书用户推送消息。

前提条件

  1. 需要已经创建飞书自定义应用,并启用机器人能力
  2. 应用已获取 im:message(或 im:message:send_as_bot)权限
  3. 目标用户需要在应用的可用范围内
  4. 需要配置以下环境变量或凭据:
  • FEISHU_APP_ID: 飞书应用 App ID (如 cli_a94a1d897cb85cbb)
  • FEISHU_APP_SECRET: 飞书应用 App Secret

API 端点

POST https://open.feishu.cn/open-apis/im/v1/messages

使用方式

命令行方式(curl)

# 获取 tenant_access_token
TOKEN=$(curl -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d "{\"app_id\":\"$FEISHU_APP_ID\",\"app_secret\":\"$FEISHU_APP_SECRET\"}" | \
  node -e "let s=''; process.stdin.on('data', c => s += c); process.stdin.on('end', () => console.log(JSON.parse(s).tenant_access_token));")

# 发送文本消息
curl --request POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=user_id" \
  --header "Authorization: Bearer $TOKEN" \
  --header "Content-Type: application/json; charset=utf-8" \
  --data-raw '{
    "receive_id": "",
    "msg_type": "text",
    "content": "{\"text\":\"你的消息内容\"}"
  }'

接收者 ID 类型

当前技能只接收飞书租户内用户 ID,即 receive_id_type=user_id。调用时传入的第一个参数必须是 user_id

支持的消息类型

| msg_type | 说明 | |----------|------| | text | 文本消息 | | post | 富文本消息 | | image | 图片消息(需要先上传图片获取 key)| | file | 文件消息(需要先上传文件获取 key)| | audio | 音频消息 | | media | 视频消息 | | sticker | 表情 | | interactive | 互动卡片 | | share_chat | 分享群名片 | | share_user | 分享个人名片 | | system | 系统消息(仅单会话有效)|

示例

发送文本消息给指定 user_id 用户

# 用法: feishu-push text  "你的消息内容"

环境变量配置

推荐在环境中配置应用凭证:

export FEISHU_APP_ID="cli_a94a1d897cb85cbb"
export FEISHU_APP_SECRET="your_app_secret_here"

错误处理

常见错误码及处理:

  • 230013: Bot 对该用户无可用权限 → 将用户添加到应用可用范围
  • 230006: 未启用机器人能力 → 在飞书开发者后台启用 bot 能力
  • 230029: 用户已离职 → 无法发送给已离职用户
  • 230053: 用户停止接收机器人消息 → 用户需要取消拉黑

NodeJS 示例

const tokenUrl = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal";
const messageUrl = "https://open.feishu.cn/open-apis/im/v1/messages";

async function postJson(url, payload, headers = {}) {
  const response = await fetch(url, {
    method: "POST",
    headers: {
      "Content-Type": "application/json; charset=utf-8",
      ...headers,
    },
    body: JSON.stringify(payload),
  });
  return response.json();
}

async function getTenantAccessToken() {
  const data = await postJson(tokenUrl, {
    app_id: process.env.FEISHU_APP_ID,
    app_secret: process.env.FEISHU_APP_SECRET,
  });

  if (data.code !== 0) {
    throw new Error(`Failed to get token: ${data.msg}`);
  }

  return data.tenant_access_token;
}

async function sendTextMessage(userId, content) {
  const token = await getTenantAccessToken();

  return postJson(
    `${messageUrl}?receive_id_type=user_id`,
    {
      receive_id: userId,
      msg_type: "text",
      content: JSON.stringify({ text: content }),
    },
    {
      Authorization: `Bearer ${token}`,
    },
  );
}

const [, , userId, message] = process.argv;
if (userId && message) {
  const result = await sendTextMessage(userId, message);
  console.log(JSON.stringify(result, null, 2));
}

调用示例

/feishu-push 给用户 7g9f6e2d 发送文本消息 "Hello from OpenClaw!"
/feishu-push send user_id 7g9f6e2d "这是一条测试推送消息"

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.