Python呼叫飛書傳送訊息的示例

2022-09-29 12:33:10 字數 3838 閱讀 6525

一、建立飛書機械人

自定義飛書機械人操作步驟,具體詳見飛書官方文件程式設計客棧:《機械人 | 如何在群聊中使用機械人?》

二、呼叫飛書傳送訊息

自定義機械人新增完成後,就能向其 webhook 位址傳送 post 請求,從而在群聊中推送訊息了。支援推送的訊息格式有文字、富文字、訊息,也可以分享群名片等。

引數msg_type代表訊息型別,可傳入:text(文字)/ post(富文字)/ image()/ share_chat(分享群名片)/ interactive(訊息卡片),可參照飛書介面文件:

傳送文字訊息

請求的訊息體示例:

}curl 請求 demo

curl -x post \

\-h 'authorization: bearer t-fee42159a366c575f2cd2b2acde2ed1e94c89d5f' \

-h 'content-type: application/json' \

-d '

}'使用python封裝飛書請求

接下來我們以傳送文字格式訊息型別,進行以下封裝,上**:

# -*- coding:utf-8 -*-

'''@file : feishutalk.py

@time : 2020/11/9 11:45

@author : dy

@version : v1.0.0

@desciption:

'''import requests

import json

import logging

import time

import urllib

import urllib3

urllib3.disable_warnings()

try:

jsondecodeerror = json.decoder.jsondecodeerror

except attributeerror:

jsondecodeerror = valueerror

def is_not_null_and_blank_str(content):

"""非空字串

:param程式設計客棧 content: 字串

:return: 非空 - true,空 - false

"""if content and content.strip():

return true

else:

return false

class feishutalkchatbot(object):

def __init__(self, webhook, secret=none, pc_slide=false, fail_notice=false):

'''機械人初始化

:param webhook: 飛書群自定義機械人webhook位址

:param secret: 機械人安全設定頁面勾選「加簽」時需要傳入的金鑰

:param pc_slide: 訊息鏈結開啟方式,預設false為瀏覽器開啟,設定為true時為pc端側邊欄開啟

:param fail_notice: 訊息傳送失敗提醒,預設為false不提醒,開發者可以根據返回的訊息傳送結果自行判斷和處理

'''super(feishutalkchatbot, self).__init__()

self.headers =

self.webhook = webhook

self.secret = secret

self.pc_slide = pc_slide

self.fail_notice = fail_notice

def send_text(self, msg, open_id=):

"""訊息型別為text型別

:param msg: 訊息內容

:return: 返回訊息傳送結果

"""data = }

if is_not_null_and_blank_str(msg): # 傳入msg非空

data["content"] =

else:

logging.error("text型別,訊息內容不能為空!")

raise valueerror("text型別,訊息內容不能為空!")

logging.debug('text型別:%s' % data)

return self.post(data)

def post(self, data):

"""傳送訊息(內容utf-8編碼)

:param data: 訊息資料(字典)

:return: 返回訊息傳送結果

logging.error("訊息傳送失敗, http error: %d, reason: %s" % (exc.response.status_code, exc.response.reason))

raise

except requests.exceptions.connectionerror:

logging.error("訊息傳送失敗,http connection error!")

raise

except requests.exceptions.timeout:

logging.error("訊息傳送失敗,timeout error!")

raise

except requests.exceptions.requestexception:

logging.error("訊息傳送失敗, request exception!")

raise

else:

try:

result = response.json()

except jsondecodeerror:

logging.error("伺服器響應異常,狀態碼:%s,響應內容:%s" % (response.status_code, response.text))

return

else:

logging.debug('傳送結果:%s' % result)

# 訊息傳送失敗提醒(errcode 不為 0,表示訊息傳送異常),預設不提醒,開發者可以根據返回的訊息傳送結果自行判斷和處理

if self.fail_notice and result.get('errcode', true):

time_now = time.strftime("%y-%m-%d %h:%m:%s", time.localtime(time.time()))

error_data = ,

"at":

}logging.error("訊息傳送失敗,自動通知:%s" % error_data)

requests.post(self.webhook, headers=self.headers, data=json.dumps(error_data))

return reswww.cppcns.comult

封裝後我們就可以直接呼叫封裝的類,進行訊息**傳送;執行以下**後,就可以使用飛書傳送訊息咯,是不是很簡單。

webhook = ""

feishu = feishutalkchatbot(webhook)

feishu.send_text("重慶百貨-新世紀魚胡路店內商品'1000800370-牛心白 約1kg'在商詳[8]和榜單[7]中排名不一致")

C 呼叫WinAPI傳送訊息SendMessage

呼叫dll中的方法 首先,應該在c 語言源程式中宣告外部方法,其基本形式是 dllimport dll檔案 修飾符extern返回變數型別方法名稱 引數列表 dllimport user32.dll entrypoint sendmessage public static extern int se...

用python自動傳送訊息

乙個簡單的指令碼 coding utf 8 from future import unicode literals from threading import timer import itchat import requests 抓取金山毒霸每日一句,英文和翻譯 def get news url ...

c 呼叫python傳送郵件

python import smtplib from email.mime.text import mimetext from email.header import header def sendemail addr,content 第三方 smtp 服務 mail host smtp.sina....