钉钉actionCard消息,如何获得点击人的 id?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在钉钉的actionCard消息中,如果你想要获取点击按钮的用户的id,你需要在设置按钮时指定一个回调URL,并在该URL中添加一个可以唯一标识用户或者操作的参数。具体步骤如下:
在钉钉的actionCard消息中,可以通过监听点击事件来获取点击人的ID。
首先,您需要在创建actionCard时添加一个点击事件的回调函数。可以使用openEnterpriseChat
方法打开企业聊天窗口,并传递一个自定义的URL参数来标识点击事件。例如:
let actionCard = {
title: '标题',
text: '内容',
btns: [{
text: '点击我',
actionURL: 'https://oapi.dingtalk.com/topapi/message/corpconversation/open?access_token=<ACCESS_TOKEN>&agent_id=<AGENT_ID>&userid=<USER_ID>'
}]
};
在上面的代码中,将<ACCESS_TOKEN>
替换为您的钉钉应用的访问令牌,<AGENT_ID>
替换为您的应用ID,<USER_ID>
替换为要获取的用户ID。
然后,您需要编写一个服务器端的接口来处理点击事件。当用户点击按钮时,钉钉会向该接口发送一个请求,并将用户ID作为参数传递给您的服务器。您可以从请求中解析出用户ID,并进行相应的处理。
以下是一个示例的Node.js服务器端代码,使用Express框架处理点击事件:
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const cors = require('cors');
app.use(bodyParser.json());
app.use(cors());
app.post('/clickEvent', (req, res) => {
const userId = req.query.userId; // 从请求参数中获取用户ID
console.log('Clicked user ID:', userId); // 打印用户ID到控制台或进行其他处理
res.sendStatus(200); // 返回成功状态码
});
// 启动服务器并监听端口号
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
在上面的代码中,我们创建了一个名为/clickEvent
的POST路由来处理点击事件。当钉钉向该路由发送请求时,我们从请求参数中获取用户ID,并进行相应的处理。最后,我们启动服务器并监听指定的端口号。
请注意,上述代码仅为示例,您需要根据自己的实际情况进行适当的修改和配置。