robot-dd
Version:
钉钉群自定义机器人消息接口全封装
2 lines (1 loc) • 2.48 kB
JavaScript
;function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}var t=require("crypto"),n=require("axios"),a=function(){function a(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a);var t=e||{},n=t.access_token,o=t.secret,r=t.base_url,i=void 0===r?"https://oapi.dingtalk.com/robot/send":r;if(o){var s=Date.now(),c=this.newSign(o,"".concat(s,"\n").concat(o));this._webhookUrl="".concat(i,"?access_token=").concat(n,"×tamp=").concat(s,"&sign=").concat(c)}else this._webhookUrl="".concat(i,"?access_token=").concat(n)}var o,r,i;return o=a,r=[{key:"newSign",value:function(e,n){var a=t.createHmac("sha256",e).update(n).digest().toString("base64");return encodeURIComponent(a)}},{key:"sendBase",value:function(e,t){var a=this;return new Promise((function(o){n.post(a._webhookUrl,e,t).then((function(e){var t;0!==(null===(t=e.data)||void 0===t?void 0:t.errcode)&&console.log(e.data),o(e.data)})).catch((function(e){o(e)}))}))}},{key:"sendAt",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mobile",n=Array.isArray(e),a="boolean"==typeof e,o="mobile"===t,r="user"===t;return{atMobiles:n&&o?e:[],atUserIds:n&&r?e:[],isAtAll:!!a&&e}}},{key:"sendText",value:function(e){var t=e||{},n=t.text,a=t.at,o=t.atType;return this.sendBase({msgtype:"text",text:{content:n},at:this.sendAt(a,o)})}},{key:"sendLink",value:function(e){return this.sendBase({msgtype:"link",link:e})}},{key:"sendMarkdown",value:function(e){var t=e||{},n=t.title,a=t.text,o=t.at,r=t.atType;return this.sendBase({msgtype:"markdown",markdown:{title:n,text:a},at:this.sendAt(o,r)})}},{key:"sendActionCardSingle",value:function(e){var t=e||{},n=t.title,a=t.text,o=t.btn||{},r=o.title,i=o.actionURL;return this.sendBase({msgtype:"actionCard",actionCard:{title:n,text:a,singleTitle:r,singleURL:i,btnOrientation:"0"}})}},{key:"sendActionCard",value:function(e){return this.sendBase({msgtype:"actionCard",actionCard:e})}},{key:"sendFeedCard",value:function(e){return this.sendBase({msgtype:"feedCard",feedCard:{links:e}})}}],i=[{key:"newUrl",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return"dingtalk://dingtalkclient/page/link?url=".concat(encodeURIComponent(e),"&pc_slide=").concat(t)}}],r&&e(o.prototype,r),i&&e(o,i),Object.defineProperty(o,"prototype",{writable:!1}),a}();module.exports=a;