

前置条件:
一、创建企业应用并申请权限、添加应用能力

二、群聊添加机器人

函数及对应的功能:
# 生成签名校验
def gen_sign(timestamp, sign):
# 拼接timestamp和secret
string_to_sign = '{}\n{}'.format(timestamp, sign)
hmac_code = hmac.new(string_to_sign.encode("utf-8"), digestmod=hashlib.sha256).digest()
# 对结果进行base64处理
sign_secrect = base64.b64encode(hmac_code).decode('utf-8')
return sign_secrect
# 鉴权
def get_access_token(appid,appsecret):
url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"
payload = {
"app_id": appid,
"app_secret": appsecret
}
headers = {
"Content-Type": "application/json; charset=utf-8",
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Connection": "keep-alive"
}
res = requests.post(url=url, json=payload, headers=headers)
return json.loads(res.content)["tenant_access_token"]
# 获取imgkey
def upload_png_get_imgkey(token, img_path):
url = "https://open.feishu.cn/open-apis/im/v1/images"
headers = {
"Authorization": "Bearer "+ token,
}
payload = {
"image_type":"message"
}
# 准备上传的文件
files=[
('image',('1234.png',open(img_path,'rb'),'application/json'))
]
res = requests.post(url, headers=headers, data=payload, files=files)
return json.loads(res.content)["data"]["image_key"]
# 发送富文本消息
def send_post(webhook_url, app_id, app_screct, sign, content):
now_timestamp = int(time.time())
sign_secret = gen_sign(now_timestamp, sign)
body = {
"timestamp":str(now_timestamp),
"sign":sign_secret,
"msg_type": "post",
"content": content
}
print(body)
headers = {
"Content-Type": "application/json"
}
res = requests.post(webhook_url, headers=headers, json=body)
return json.loads(res.content)调用方法:
def main(args):
# 以下的参数替换成自己的
webhook_url = "https://open.feishu.cn/open-apis/bot/v2/hook/749ead4sdsdsdf06ecf"
sign = "kvimdsdsdsdCy"
app_id = "cli_aaaaaaaaaa"
app_secret = "DoLHgseSgAwDYay1"
img_path = r"C:\Users\31376\Desktop\测试.png"
# -----参数-------
access_token = get_access_token(app_id,app_secret)
img_key = upload_png_get_imgkey(access_token, img_path)
content = {
"post": {
"zh_cn": {
"title": "这是一个标题",
"content": [
[{
"tag": "text",
"text": "这是一串文本"
}],
[{
"tag": "img",
"image_key": img_key
}]
]
}
}
}
send_post(webhook_url,app_id,app_secret,sign,content)实际的运行效果:
