中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python第三方包之DingDingBot釘釘機器人

發布時間:2021-03-11 09:40:32 來源:億速云 閱讀:478 作者:小新 欄目:開發技術

小編給大家分享一下Python第三方包之DingDingBot釘釘機器人,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

這個是作者自己封裝的一個釘釘機器人的包,目前只支持發文本格式、鏈接格式、markdown格式的消息,我們可以在很多場景用到這個,比如告警通知等

安裝

pip install DingDingBot

使用方法

from DingDingBot.DDBOT import DingDing
# 初始話DingDingBOt webhook是釘釘機器人所必須的
dd = DingDing(webhook='https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx')
# 發送文本消息
print(dd.Send_Text_Msg(Content='test:測試數據'))
# 發送鏈接消息
print(dd.Send_Link_Msg(Content='test',Title='測試數據',MsgUrl='https://www.baidu.com',PicUrl='https://cn.bing.com/images/search?q=outgoing%e6%9c%ba%e5%99%a8%e4%ba%ba&id=FEE700371845D9386738AAAA51DCC43DC54911AA&FORM=IQFRBA'))
# 發送Markdown格式的消息
print(dd.Send_MardDown_Msg(Content="# 測試數據\n" + "> testone", Title='測試數據'))

源碼

#!/usr/bin/python
# -*- coding: UTF-8 -*-

'''
  @@@@@@@@   @@@@@@@@@   @@@@@@@@@  @@@@@@@@@   @@@@@@@@@@@@
  @@   @@  @@   @@  @@   @@  @@   @@     @@
  @@    @@ @@    @@  @@  @@  @@    @@    @@
  @@    @@ @@    @@  @@  @@   @@    @@    @@
  @@    @@ @@    @@  @@ @@   @@    @@    @@
  @@   @@  @@   @@  @@ @@    @@    @@    @@
  @@   @@  @@   @@   @@ @@   @@    @@    @@
  @@  @@   @@  @@   @@  @@   @@    @@    @@
  @@  @@   @@  @@    @@ @@    @@   @@     @@
  @@ @@    @@ @@     @@      @@@@@@@@@     @@

'''

import requests, json


class DingDing():
  """
  # 釘釘官方文檔
  Refer to official documentation: https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
  """
  # 初始化
  def __init__(self, webhook):
    self.webhook = webhook
    self.session = requests.session()
    self.session.headers = {"Content-Type": "application/json;charset=utf-8"}

  def Send_Text_Msg(self, Content: str, atMobiles: list = [], isAtAll: bool = False) -> dict:
    """
    :param content: 要發送的內容
    :param atMobiles: @指定的人,這里必須是列表,且參數為手機號
    :param isAtAll: @全體成員
    :return:
    """
    try:
      data = {
        "msgtype": "text",
        "text": {
          "content": Content
        },
        "at": {
          "atMobiles": atMobiles,
          "isAtAll": isAtAll
        }
      }
      response = self.session.post(self.webhook, data=json.dumps(data))
      if response.status_code == '200':
        result = {"status": True, "message": "Message has been sent"}
        return result
      else:
        return response.text
    except Exception as error:
      result = {"status": False, "message": f"Failed to send message,Error stack:{error}"}
      return result

  def Send_Link_Msg(self, Content: str, Title: str, MsgUrl: str, PicUrl: str = ''):
    """
    :param Content: 鏈接的內容
    :param title: 鏈接的標題
    :param MsgUrl: 待跳轉頁面的url
    :param PicUrl: 消息所展示的圖片
    :return:
    """
    try:
      data = {
        "msgtype": "link",
        "link": {
          "text": Content,
          "title": Title,
          "picUrl": PicUrl,
          "messageUrl": MsgUrl
        }
      }
      response = self.session.post(self.webhook, data=json.dumps(data))
      if response.status_code == '200':
        result = {"status": True, "message": "Message has been sent"}
        return result
      else:
        return response.text
    except Exception as error:
      result = {"status": False, "message": f"Failed to send message,Error stack:{error}"}
      return result

  def Send_MardDown_Msg(self, Content: str, Title: str, atMobiles: list = [], isAtAll: bool = False):
    """
    :param Content: Markdown格式的文本,僅支持下面的格式
    '''
    標題
      # 一級標題
      ## 二級標題
      ### 三級標題
      #### 四級標題
      ##### 五級標題
      ###### 六級標題

      引用
      > A man who stands for nothing will fall for anything.

      文字加粗、斜體
      **bold**
      *italic*

      鏈接
      [this is a link](http://name.com)

      圖片
      ![](https://cache.yisu.com/upload/information/20200622/113/6278.jpg)

      無序列表
      - item1
      - item2

      有序列表
      1. item1
      2. item2
    '''
    :param Title: 這個Markdown的標題
    :param atMobiles: @指定的人,這里必須是列表,且參數為手機號
    :param isAtAll: @全體成員
    :return:
    """
    try:
      data = {
        "msgtype": "markdown",
        "markdown": {
          "title": Title,
          "text": Content
        },
        "at": {
          "atMobiles": atMobiles,
          "isAtAll": isAtAll
        }
      }
      response = self.session.post(self.webhook, data=json.dumps(data))
      if response.status_code == '200':
        result = {"status": True, "message": "Message has been sent"}
        return result
      else:
        return response.text
    except Exception as error:
      result = {"status": False, "message": f"Failed to send message,Error stack:{error}"}
      return result

以上是“Python第三方包之DingDingBot釘釘機器人”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥滨县| 青铜峡市| 潮安县| 轮台县| 扎囊县| 朝阳市| 普洱| 专栏| 翼城县| 新平| 辉县市| 宝山区| 本溪市| 崇礼县| 西昌市| 响水县| 台北县| 肥西县| 景洪市| 沂南县| 德阳市| 布尔津县| 即墨市| 邻水| 容城县| 乐亭县| 贵溪市| 垦利县| 高密市| 包头市| 盐池县| 赫章县| 荥经县| 宁河县| 精河县| 贵定县| 蕲春县| 磐石市| 南宁市| 昌图县| 惠来县|