WorkBuddy 接入飞书:从零到一的完整实践指南

1. 引言

随着企业协作效率要求的不断提升,将内部工具与飞书深度集成已成为许多团队的刚需。WorkBuddy 作为一款灵活的工作流自动化平台,通过接入飞书,可以实现消息推送、审批提醒、机器人交互等场景的自动化。本文将从飞书开放平台的准备工作开始,逐步讲解如何将 WorkBuddy 接入飞书,并提供丰富的代码实例,帮助读者快速上手。

2. 准备工作

在开始接入之前,需要完成以下准备工作:

  • 注册飞书开放平台账号,并创建企业自建应用。
  • 获取应用的 App ID 和 App Secret。
  • 在飞书开放平台中开通机器人能力,并获取机器人 Webhook 地址。
  • 准备 WorkBuddy 环境,确保可以运行自定义脚本或 Webhook 服务。

3. 创建飞书自建应用

首先,登录飞书开放平台,进入「开发者后台」,点击「创建企业自建应用」。填写应用名称和描述后,即可获得应用的 App ID 和 App Secret。这两个凭证是后续调用飞书 API 的基础。

{
  "app_id": "cli_a5f8e2c1b3d4",
  "app_secret": "your_app_secret_here"
}

4. 获取访问令牌

飞书开放平台使用 tenant_access_token 作为调用 API 的凭证。通过 App ID 和 App Secret 可以获取该令牌。以下是一个使用 Python 获取访问令牌的示例:

import requests
def get_tenant_access_token(app_id, app_secret):
url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"
payload = {
"app_id": app_id,
"app_secret": app_secret
}
response = requests.post(url, json=payload)
data = response.json()
if data.get("code") == 0:
return data["tenant_access_token"]
else:
raise Exception(f"获取令牌失败: {data}")
使用示例
token = get_tenant_access_token("cli_a5f8e2c1b3d4", "your_app_secret_here")
print(token)

5. 配置机器人 Webhook

在飞书开放平台中,为应用添加「机器人」能力后,可以获取机器人的 Webhook 地址。WorkBuddy 可以通过该 Webhook 向飞书群发送消息。以下是一个发送文本消息的示例:

import requests
def send_feishu_message(webhook_url, content):
headers = {"Content-Type": "application/json"}
payload = {
"msg_type": "text",
"content": {
"text": content
}
}
response = requests.post(webhook_url, json=payload, headers=headers)
return response.json()
使用示例
webhook = "https://open.feishu.cn/open-apis/bot/v2/hook/your_webhook_token"
result = send_feishu_message(webhook, "Hello from WorkBuddy!")
print(result)

6. WorkBuddy 中配置飞书节点

在 WorkBuddy 的工作流编辑器中,添加一个「HTTP 请求」节点,将飞书 Webhook 地址填入 URL 字段,并设置请求方法为 POST。请求体使用 JSON 格式,内容如下:

{
  "msg_type": "text",
  "content": {
    "text": "{{workflow.variables.message}}"
  }
}

其中 {{workflow.variables.message}} 是 WorkBuddy 中的变量引用,可以在工作流中动态传入消息内容。

7. 实现消息卡片推送

除了纯文本消息,飞书还支持富文本卡片消息。以下是一个发送卡片消息的 Python 示例:

import requests
def send_card_message(webhook_url, title, content):
headers = {"Content-Type": "application/json"}
payload = {
"msg_type": "interactive",
"card": {
"header": {
"title": {
"tag": "plain_text",
"content": title
}
},
"elements": [
{
"tag": "div",
"text": {
"tag": "lark_md",
"content": content
}
}
]
}
}
response = requests.post(webhook_url, json=payload, headers=headers)
return response.json()
使用示例
result = send_card_message(webhook, "任务完成通知", "你的任务 #123 已完成,请及时查看。")
print(result)

8. 处理飞书事件回调

如果需要实现双向交互,例如接收飞书群内的指令并触发 WorkBuddy 工作流,则需要配置事件订阅。飞书通过回调 URL 将事件推送给你的服务。以下是一个使用 Flask 处理飞书事件回调的示例:

from flask import Flask, request, jsonify
import json
app = Flask(name)
@app.route("/feishu/callback", methods=["POST"])
def feishu_callback():
data = request.json
# 处理 URL 验证
if data.get("type") == "url_verification":
return jsonify({"challenge": data["challenge"]})
# 处理消息事件
if data.get("type") == "event_callback":
    event = data.get("event", {})
    if event.get("type") == "message":
        message_content = json.loads(event.get("message", {}).get("content", "{}"))
        text = message_content.get("text", "")
        print(f"收到消息: {text}")
        # 在这里触发 WorkBuddy 工作流
return jsonify({"code": 0})
if name == "main":
app.run(port=5000)

9. 在 WorkBuddy 中调用飞书 API

WorkBuddy 支持通过自定义脚本节点调用飞书 API。以下是一个在 WorkBuddy 中获取用户信息的示例脚本:

import requests
def get_user_info(tenant_access_token, user_id):
url = f"https://open.feishu.cn/open-apis/contact/v3/users/{user_id}"
headers = {
"Authorization": f"Bearer {tenant_access_token}"
}
response = requests.get(url, headers=headers)
data = response.json()
if data.get("code") == 0:
return data["data"]["user"]
else:
raise Exception(f"获取用户信息失败: {data}")
在 WorkBuddy 中调用
token = get_tenant_access_token(app_id, app_secret)
user = get_user_info(token, "ou_xxx")
print(user["name"])

10. 常见问题与排查

在接入过程中,可能会遇到以下常见问题:

  • 获取令牌失败:检查 App ID 和 App Secret 是否正确,确保应用已启用。
  • Webhook 发送失败:确认 Webhook 地址完整,且机器人已添加到目标群。
  • 事件回调不触发:检查回调 URL 是否公网可访问,并在飞书后台正确配置事件订阅。
  • 权限不足:在飞书开放平台中为应用添加相应的权限范围,并发布应用版本。

11. 总结

本文详细介绍了 WorkBuddy 接入飞书的完整流程,包括创建自建应用、获取访问令牌、配置机器人 Webhook、发送文本和卡片消息、处理事件回调等核心环节,并提供了丰富的代码实例。通过本文的实践,读者可以快速实现 WorkBuddy 与飞书的深度集成,提升团队协作效率。后续还可以根据业务需求,扩展更多飞书 API 的调用场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值