1、消息推送
釘釘群添加機器人
方式一:釘釘 群設置添加
群設置 -> 智能群助手 -> 添加機器人 -- 自定義機器人
設置如下: 這里選擇 自定義關鍵字 填寫"消息推送" ,只有發送的消息包含了 這個關鍵字,才會推送這個消息
復制webhook,代碼需要用到
def send_massage(message): webhook = 'Your webhook' chatbot = DingtalkChatbot(webhook) chatbot.send_text(msg=message,is_at_all=False,is_auto_at=True,at_mobiles=['@人手機號']) send_massage('消息推送:發送消息"')
如上如果 send_massage 不含 消息推送,則不會發送消息。
方式二:創建一個小程序應用:
- 登錄釘釘開發者后台。
說明:只有管理員和子管理員可登錄開發者后台。注冊企業或個人
注冊后登錄首頁如圖
點擊應用開發,創建應用,如圖創建機器人
創建后點擊上線,即可上線該機器人
最后手動在群里可以添加該機器人
在群里查看該機器人,即可看到該機器人 webhook
def send_massage(message): webhook = 'Your webhook' chatbot = DingtalkChatbot(webhook) chatbot.send_text(msg=message,is_at_all=False,is_auto_at=True,at_mobiles=['@人手機號']) send_massage('test:message"')
這里沒有設置關鍵字,所以消息就都可以發送。
2、文件傳輸
釘釘群機器人推送消息類型只支持text,link,markdown等形式,並不支持文件和圖片類媒體文件的推送,所以咱們這里就需要用到釘釘的API接口來實現了,進入釘釘開放平台:https://open-dev.dingtalk.com
首頁如下,記到:Corpid,后續會用到
到應用開發,准備創建小程序
開發管理:添加服務器出口IP, 獲取IP: http://myip.fireflysoft.net/ 注意:根據網絡自動獲取,網絡不同,ip不同,切如果ip已經被占用,請變更網絡
添加接口權限,添加企業會話權限,該權限可以推送文件到群聊,如果無此權限,則無法推送文件。
到此完成了釘釘 推送文件小程序的設置,接下來准備需要的信息:
1、chatid 通過地址 https://wsdebug.dingtalk.com/
使用釘釘管理員的釘釘掃描二維碼
然后 定位到 v0.1.2
復制首頁的
2、AppKey AppSecret 獲取
打開應用開發-> 查看對應的小程序,如圖即可獲取
最后直接上代碼
import requests import json def getAccess_token(): appkey = '****' # 替換自己的key appsecret = '****' # 替換自己的secret url = 'https://oapi.dingtalk.com/gettoken?appkey=%s&appsecret=%s' % (appkey, appsecret) headers = { 'Content-Type': "application/x-www-form-urlencoded" } data = {'appkey': appkey, 'appsecret': appsecret} r = requests.request('GET', url, data=data, headers=headers) access_token = r.json()["access_token"] print(access_token) return access_token def getMedia_id(): access_token = getAccess_token() # 拿到接口憑證 # 獲取要推送文件的路徑 path = os.getcwd() file = os.path.join(path,'moudleCore.txt') # path = './helloworld.txt' # 文件地址 url = 'https://oapi.dingtalk.com/media/upload?access_token=%s&type=file' % access_token files = {'media': open(file, 'rb')} data = {'access_token': access_token, 'type': 'file'} response = requests.post(url, files=files, data=data) json = response.json() print(json) return json["media_id"] def SendFile(): access_token = getAccess_token() media_id = getMedia_id() chatid = '*****' # 替換自己的chatid # chatid = '******' # 通過jsapi工具獲取的群聊id url = 'https://oapi.dingtalk.com/chat/send?access_token=' + access_token header = { 'Content-Type': 'application/json' } data = {'access_token': access_token, 'chatid': chatid, 'msg': { 'msgtype': 'file', 'file': {'media_id': media_id} }} r = requests.request('POST', url, data=json.dumps(data), headers=header) print(r.json()) if __name__ == '__main__': SendFile()
執行后,即可看到群里自動發送了文件如圖。