飞书群中的自定义机器人是通过webhook的形式发送消息到群聊中,比如我们使用可以发送告警消息,业务通知。
二、操作流程1、在群聊中使用群机器人
进入群聊,打开会话设置,找到群机器人,并点击添加机器人。选择添加需要的机器人加入群聊。机器人添加到群聊后,群内成员即可在群聊中使用该机器人的功能。
2、在群聊中使用自定义机器人
为了使自定义机器人向群聊中即时推送来自外部系统的消息,你需要以 webhook 的形式向群聊发送消息。进入你的目标群组,打开会话设置,找到群机器人,并点击添加机器人。选择 Custom Bot(自定义机器人)加入群聊。
备注:详细操作步骤可以查看官方文档
三、安全设置如果未妥善保管webhook地址,可能存在webhook地址泄露后,被恶意开发者调用,发送垃圾信息的风险,我们强烈建议对其进行安全设置。在此我们重点介绍签名校验以及进行编码
官方签名的算法:把 timestamp "\n" 密钥 当做签名字符串,使用 HmacSHA256 算法计算签名,再进行 Base64 编码。
签名算法代码示例(Python3)
# Python 3.9
import base64
import hmac
import time
from hashlib import sha256
timestamp = str(round(time.time()))
secret = "你的密钥"
key = f'{timestamp}\n{secret}'
key_enc = key.encode('utf-8')
msg = ""
msg_enc = msg.encode('utf-8')
hmac_code = hmac.new(key_enc, msg_enc, digestmod=sha256).digest()
sign = base64.b64encode(hmac_code).decode('utf-8')
print(timestamp)
print(sign)
签名算法代码示例(Python2)
# Python 2.7
import base64
import hmac
import time
from hashlib import sha256
timestamp = long(round(time.time()))
secret = "你的密钥"
key = '{}\n{}'.format(timestamp, secret)
key_enc = bytes(key).encode('utf-8')
msg = ""
msg_enc = bytes(msg).encode('utf-8')
hmac_code = hmac.new(key_enc, msg_enc, digestmod=sha256).digest()
sign = base64.b64encode(hmac_code).decode('utf-8')
print(timestamp)
print(sign)
签名算法代码示例(Go)
func GenSign(secret string, timestamp int64) (string, error) {
stringToSign := fmt.Sprintf("%v", timestamp) "\n" secret
var data []byte
h := hmac.New(sha256.New, []byte(stringToSign))
_, err := h.Write(data)
if err != nil {
return "", err
}
signature := base64.StdEncoding.EncodeToString(h.Sum(nil))
return signature, nil
}
签名算法代码示例(PHP)
function getSign(){
$timestamp = time();
$secret = '你的密钥';
$string = "{$timestamp}\n{$secret}";
return base64_encode(hash_hmac('sha256',"", $string,true));
}
PHP详细代码可以查看 https://github.com/yuncopy/feishu-robot-msg
,Copyright © 2008-2022 秒下下载站
m.down10s.com .All Rights Reserved