https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot?lang=zh-CN

计算签名字符串。

设置签名校验后,向 webhook 发送请求需要签名校验来保障来源可信。

所校验的签名需要通过时间戳与秘钥进行算法加密,即将**timestamp + "\\n" + 密钥**当做签名字符串,

使用 HmacSHA256 算法计算空字符串的签名结果,再进行 Base64 编码。

其中,**timestamp**是指距当前时间不超过 1 小时(3600 秒)的时间戳,时间单位:s。例如,1599360473。


    $timestamp = time();

    private static function GenerateSign($timestamp, $secret)
    {
        if (empty($secret)) {
            return '';
        }

        // 飞书签名算法:timestamp + "\\n" + secret
        // 确保timestamp为字符串格式
        $sign = $timestamp . "\\n" . $secret;

        // 使用HMAC-SHA256算法,key为secret,message为string_to_sign
        $hash = hash_hmac('sha256', '', $sign, true);
        return base64_encode($hash);
    }