开发者社区 问答 正文

钉钉actionCard消息,如何获得点击人的 id?

钉钉actionCard消息,如何获得点击人的 id?

展开
收起
真的很搞笑 2023-12-21 08:05:09 290 分享 版权
2 条回答
写回答
取消 提交回答
  • 在钉钉的actionCard消息中,如果你想要获取点击按钮的用户的id,你需要在设置按钮时指定一个回调URL,并在该URL中添加一个可以唯一标识用户或者操作的参数。具体步骤如下:

    • 在创建actionCard消息时,为按钮设置一个回调URL,例如:https://your-server.com/callback?user=click_user_id。
    • 当用户点击按钮时,钉钉会将用户重定向到这个回调URL,并在URL中添加用户的id(或其他标识符)。
    • 你的服务器接收到这个回调请求后,可以从URL的查询参数中解析出用户的id。
    2023-12-21 15:22:57
    赞同 展开评论
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在钉钉的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,并进行相应的处理。最后,我们启动服务器并监听指定的端口号。

    请注意,上述代码仅为示例,您需要根据自己的实际情况进行适当的修改和配置。

    2023-12-21 14:40:46
    赞同 展开评论