飞书平台和 Teams 的集成
我们上篇文章说了如何把微信公众号的消息转发给 Teams,有很多读者让我再讲讲 Teams 和 飞书平台的整合。
可能有些用户还不知道飞书是什么,简单的说,飞书是一个企业协作与管理平台,和微软的整套协作平台有点类似,有很多企业使用。
那我们就来看看如何把从 teams 里用webhook获得消息转发到飞书平台。
通过 webhook 来监听消息
在 Microsoft Teams 中创建一个 outgoing webhook 是非常简单的。
-
首先,在 Teams 中打开聊天窗口并找到要在其中创建 outgoing webhook 的频道。
-
点击频道的“…”菜单,然后选择“创建 webhook”。
-
在弹出的窗口中输入 webhook 的名称和描述。
-
点击“创建”按钮。
-
新的 webhook 现在已经创建,并显示了一个唯一的 URL。这个 URL 就是你的 outgoing webhook 的地址。
-
现在你可以在这个地址上创建一个 server,这个server监听这个地址,当有人在频道里发送消息时,teams会发送请求到这个地址上,这样你就可以在server里面进行相应的操作了。
注意: 请确保在创建 outgoing webhook 时记录并保存 webhook URL,因为它只会显示一次。
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.post('/teams-webhook', (req, res) => {
const message = req.body.text;
console.log(`Received message: ${message}`);
// Do something with the message here, such as sending it to a database or an external service
res.status(200).end();
});
app.listen(3000, () => {
console.log('Server listening on port 3000.');
});
这段代码实现了一个简单的 Express 服务器,监听端口 3000。当 Teams 发送消息到你的 outgoing webhook URL 时,服务器会接收到一个 HTTP POST 请求,其中包含消息的文本。该代码将消息打印到控制台,后面我们就可以把这个消息文本发送到飞书平台。
发送消息到飞书平台
首先我们现需要注册一个账号,在飞书开发者平台申请并获取 AppId 和 AppSecret 的步骤如下:
-
打开飞书开发者平台官网(https://open.feishu.cn/),点击右上角的 “登录/注册” 按钮进行登录。
-
登录后点击左上角的 “应用管理”,进入应用管理页面。
-
点击“创建应用”按钮,填写应用名称和简介,并选择应用类型。
-
点击“创建”按钮,即可获取 AppId 和 AppSecret。
-
在应用详情页面可以看到APP ID 和APP Secret,且在审核通过后可以使用。
const axios = require('axios');
const qs = require('qs');
const AppId = 'your_app_id';
const AppSecret = 'your_app_secret';
async function sendMessage() {
// 获取 access_token
const tokenRes = await axios.post(
'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/',
qs.stringify({
app_id: AppId,
app_secret: AppSecret
})
);
const access_token = tokenRes.data.tenant_access_token;
// 发送消息
const messageRes = await axios.post(
'https://open.feishu.cn/open-apis/message/v4/send/',
{
open_id: 'your_open_id',
msg_type: 'text',
content: {
text: '我们从 teams 里获取的消息'
}
},
{
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${access_token}`
}
}
);
console.log(messageRes.data);
}
sendMessage();
首先,通过 app_id 和 app_secret 获取访问令牌(access_token)。使用 tenant_access_token 接口,并使用 POST 方法将 app_id 和 app_secret 发送到该接口。服务器会返回一个 JSON 对象,其中包含 access_token。
之后,使用 send 接口来发送消息。将 access_token 加入到请求头中,并在请求体中传递消息所需的数据,包括 open_id,消息类型和消息内容。
最后,使用 POST 方法将请求发送到 send 接口。服务器会返回一个 JSON 对象,其中包含发送结果。
请注意,在实际使用中,需要替换示例代码中的 AppId 和 AppSecret 为您自己的值,并且还需要替换 open_id 为您要发送消息的目标用户的 open_id。