EggJs 连接钉钉机器人

EggJs 连接钉钉机器人

创建机器人

在群聊设置中选择添加自定义机器人
在这里插入图片描述

获取 token 和密钥

选择加签,也可以选择其他安全设置
在这里插入图片描述

配置 token 和密钥

我选择将 token 和密钥配置在 config 当中方便获取

...

const userConfig = {
    security: {
      csrf: {
        enable: false,
      },
    },
    mysql: {
      client: {
        host: 'localhost',
        port: '3306',
        user: 'root',
        password: 'xxx',
      },
      app: true,
      agent: false,
    },
    view: {
      root: path.join(appInfo.baseDir, 'app/public'),
      defaultExtension: '.html',
      defaultViewEngine: 'nunjucks',
    },
  };

  // 钉钉机器人 token && 密钥
  const dingToken = '393xxx'; // token
  const dingSecret = 'SECxxx'; // 密钥

  return {
    ...config,
    ...userConfig,
    dingSecret,
    dingToken,
    pubkeyPrikey,
  };

...

请求接口

  async warning(params) {
    const {
      config,
    } = this;
    const { text } = params;
    // config中存放着你的默认配置属性
    const { dingSecret, dingToken } = config;
    const time = new Date().getTime();
    const sign = time + '\n' + dingSecret;
    const q = CryptoJS.HmacSHA256(sign, dingSecret); // HmacSHA256计算签名
    const hashInBase64 = CryptoJS.enc.Base64.stringify(q); // base64加密
    const encodesign = encodeURI(hashInBase64); // 解密

    const data = {
      at: {
        isAtAll: false, // 是否@所有人
      },
      text: {
        content: text, 
      },
      msgtype: 'text', // 也可选择其他格式,详情可见顶顶机器人官方文档
    };
    const result = await this.ctx.curl(`https://oapi.dingtalk.com/robot/send?access_token=${dingToken}&timestamp=${time}&sign=${encodesign}`, {
      method: 'POST',
      headers: {
        Accept: '*/*',
        'Content-Type': 'application/json;charset=utf-8',
      },
      data,
      dataType: 'json',
    });

    return result.data;
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值