钉钉群机器人发送脚本

以前公司用的企业QQ,没有对应的webapi接口可以发送一些群消息方便发布成功后通知,现在换了钉钉里面有个群机器人,可以接收POST消息发送消息,分享下方法

1 群设置添加机器人》只能群助手

2 添加一个标签 用于发送验证

3 我用的是python脚本 

token 从这里复制出来

# -*- coding: utf-8 -*-
#@
import time
import hmac
import hashlib
import base64
import urllib2
import urllib
import json

#https://ding-doc.dingtalk.com/doc#/bgb96b/ok9au2 参考API文档

# 一个POST事件 post_string 是发送的数据内容
def dingtalk_bot_text(url, post_string, at_mobiles=None):
    data = {
        'msgtype': 'text', 'text': {'content': '%s' % post_string},"at": {"atMobiles": at_mobiles,"isAtAll": 'false'}
    }
    json_str = json.dumps(data)
    req = urllib2.Request(url, json_str)
    req.add_header('Content-type', 'application/json')
    response = urllib2.urlopen(req, timeout=120)
    return response.read()

# 一个POST事件 post_string 是发送的数据内容
def dingtalk_bot_link(url, title,linkurl,post_string, at_mobiles=None):
    data = {
        'msgtype': 'link',
        "link": {
            "text": post_string,
            "title": title,
            "picUrl": "",
            "messageUrl": linkurl
        },
        "at": {"atMobiles": at_mobiles,
               "isAtAll": 'false'
               }
    }
    json_str = json.dumps(data)
    req = urllib2.Request(url, json_str)
    req.add_header('Content-type', 'application/json')
    response = urllib2.urlopen(req, timeout=120)
    return response.read()

#获取机器人签名 再群机器上查找 secret
def getdingTalkSign(secret):
    timestamp = long(round(time.time() * 1000))
    secret_enc = bytes(secret).encode('utf-8')
    string_to_sign = '{}\n{}'.format(timestamp, secret)
    string_to_sign_enc = bytes(string_to_sign).encode('utf-8')
    hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
    sign = urllib.quote_plus(base64.b64encode(hmac_code))
    return sign,timestamp

# 文字内容
def SendDingTalk_text(msg):
    token="xxxxx"
    secret = 'xxx'
    sign,timestamp= getdingTalkSign(secret);
    s = "https://oapi.dingtalk.com/robot/send?access_token={0}&timestamp={1}&sign={2}".format(token,timestamp,sign)
    print(s)
    request=dingtalk_bot_text(s, msg)
    print(request)

# 发布带连接地址 url:连接 title:标题 msg:显示内容
def SendDingTalk_url(url,title,msg):
    token="xxx"
    secret = 'xxx'
    sign,timestamp= getdingTalkSign(secret);
    s = "https://oapi.dingtalk.com/robot/send?access_token={0}&timestamp={1}&sign={2}".format(token,timestamp,sign)
    print(s)
    # request=dingtalk_bot_text(s, msg)
    # print(request)
    request=dingtalk_bot_link(s,title,url,msg)
    print(request)

#SendDingTalk("xxxxxxx");
# token="xxx"
# timestamp = long(round(time.time() * 1000))
# secret = 'xxx'
# sign = getdingTalkSign(secret);
# s = "https://oapi.dingtalk.com/robot/send?access_token={0}&timestamp={1}&sign={2}".format(token,timestamp,sign)
# print(s)
# request=dingtalk_bot(s, "test2")
# print(request)

 测试内容  可配合jenkins 发布后成功后 调用下这个脚本即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Java发送钉钉消息可以通过调用钉钉开放平台的机器人API实现。 首先,需要创建一个钉钉机器人。在钉钉里找到你想要发送消息的,点击设置,选择机器人管理,然后添加一个自定义机器人。选择自定义机器人之后,可以获得该机器人的Webhook地址,这个地址就是我们调用机器人API发送消息的接口。 接下来,在Java中,我们可以使用HTTP请求库,如HttpClient或OkHttp,来发送HTTP POST请求到该Webhook地址。 示例代码如下: ```java import okhttp3.*; import java.io.IOException; public class DingTalkRobot { public static void main(String[] args) { String webhook = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxx"; String content = "Hello, 钉钉机器人!"; // 消息内容 OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); // JSON格式的消息体 String jsonBody = "{\"msgtype\": \"text\", \"text\": {\"content\": \"" + content + "\"}}"; RequestBody body = RequestBody.create(jsonBody, mediaType); Request request = new Request.Builder() .url(webhook) .post(body) .build(); try { Response response = client.newCall(request).execute(); System.out.println(response.body().string()); } catch (IOException e) { e.printStackTrace(); } } } ``` 以上代码通过构造JSON格式的消息体,包括消息类型和消息内容,然后将其POST到钉钉机器人的Webhook地址。在try-catch块中,通过调用`response.body().string()`方法可打印出钉钉机器人的响应结果。 注意,代码中的`webhook`需要替换成你自己创建的钉钉机器人的Webhook地址。而且,你可能需要引入OkHttp库或HttpClient库,这取决于你选择使用的HTTP请求库。 通过上述方式,就可以使用Java发送钉钉机器人消息了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值