php对接飞书机器人

这篇具有很好参考价值的文章主要介绍了php对接飞书机器人。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有同事接到对接飞书机器人任务,开发中遇到响应错误:

{
        "code": 19021,
        "msg": "sign match fail or timestamp is not within one hour from current time"
}

意思应该就是签名错误或者时间戳不在有效范围内等,官方文档解释:

php对接飞书机器人,php,php,飞书

时间戳是取的实时的,也确认过了没问题,那基本确认就是签名错误了。

按照文档尝试调试了一下还是一样的结果,如果把后台安全设置那个签名去掉的话(即不用验签)使用curl请求立马就收到消息了:

curl -X POST -H "Content-Type: application/json" \
    -d '{"msg_type":"text","content":{"text":"request example"}}' \
    https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxx

问题还是签名上,文档书写如下:

php对接飞书机器人,php,php,飞书

示例代码缺少了php的,文档很简单就三步,拼接和base64肯定没问题,主要问题肯定就是加密算法那里了,尝试了hash('sha256',$sign),hash_hmac('sha256', $sign, true, true),hash_hmac('sha256', $sign, '**'),hash_hmac('sha256', $sign, '**',true);等等,结果最后同事咨询了技术支持居然是hash_hmac('sha256', '', $sign, true);

文档中说吧拼接字符串当做签名字符串,我想当然的以为要带入的参数是hash_hmac第二参数,结果没想到是第三个,也是自己对hash_hmac这个函数的认知比较低的缘故吧。只能说又涨知识了。不知道这是不是坑,希望对后面对接的人有帮助,写的小demo:文章来源地址https://www.toymoban.com/news/detail-722367.html

$url = 'https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxx';
$timestamp = time();
$secret = "abcdxxxxxx";//秘钥
$sign = $timestamp . "\n" . $secret;
$sign = base64_encode(hash_hmac('sha256', '', $sign, true));
$body = array(
    "timestamp" => $timestamp,
    "sign" => $sign,
    'msg_type' => 'text',
    'content' => ['text' => '这是一条测试数据']
);
$postData = json_encode($body);
$options = array(
    'http' => array(
        'method' => 'POST', 
        'header' => 'Content-type:application/json;charset=UTF-8', 
        'content' => $postData, 
        'timeout' => 60
    )
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
var_dump($result);

到了这里,关于php对接飞书机器人的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 飞书ChatGPT机器人 – 打造智能问答助手

    在飞书中创建chatGPT机器人并且对话,在下面操作步骤中,使用到了Git克隆项目,需提前安装好Git,克隆的项目是Go语言项目,所以需提前安装Go语言环境。 Git Go1.20 首次注册飞书,我们可以创建个人账号 进入后 我们创建一个飞书 企业自建项目 然后设置机器人名称和描述,下面

    2024年02月16日
    浏览(103)
  • 飞书机器人小助手@特定人

    文档接口: https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN 创建机器人小助手   消息推送测试 获取艾特人 open_id @特定人请求

    2024年02月16日
    浏览(115)
  • 飞书自定义机器人消息接入指南

    操作流程 第一步 邀请自定义机器人入群:进入你的目标群组,打开 会话设置 ,找到 群机器人 ,并点击 添加机器人 ,选择 自定义机器人 加入群聊。 为机器人输入一个合适的名字和描述,也可以为机器人设置一个合适的头像,然后点击下一步。 第二部:配置 webhook 获取该

    2024年03月18日
    浏览(167)
  • 使用飞书自定义机器人发送消息

    使用飞书机器人可以很方便的获取自动化任务的反馈: 在群里创建一个机器人: 记住下面的 webhook地址,这个是标识机器人的唯一ID,比如它的webhook地址是: \\\"https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxx-ab01-4427-xxxxx-xxxxx\\\" 然后创建程序: 发送之后的效果如下:

    2024年02月03日
    浏览(65)
  • python调用飞书机器人发送文件

    当前飞书webhook机器人还不支持发送文件类型的群消息,可以申请创建一个机器人应用来实现群发送文件消息。 创建机器人后,需要开通一系列权限,然后发布。由管理员审核通过后,才可使用。 包括如下的权限,可以获取群的chat_id。 开通权限发布应用后,可以取到两个重

    2024年02月06日
    浏览(51)
  • 飞书接入机器人NODE开发自动回复

    1.登录飞书开放平台 进入开发者后台 创建自建应用 2.添加应用能力 选择机器人添加 3.添加事件订阅并根据权限开通权限  此处只添加获取消息事件 4.配置应用服务端地址(当事件触发 会触发设置的地址 并发送事件数据)开启Encrypt Key 实现回调数据加密 接收到数据后 通过开

    2024年02月12日
    浏览(61)
  • 使用飞书机器人发送消息与文件

    本文默认你已拥有一个机器人,如果没有请点击以下链接创建机器人 检查机器人权限 如果需要跨部门发送消息,检查是否开通跨部门权限 在发布版本时选择作用范围为所有员工 机器人发送消息需要获取以下权限: 通过手机号或邮箱获取用户 ID 查看、评论和下载云空间中所

    2024年04月10日
    浏览(49)
  • 手把手自己制作一个飞书机器人

    飞书机器人 如果你想添加新的对话逻辑,你只需要在 ChatApi.py 中添加新的if条件判断语句即可。如果你能开发出新功能,请在仓库中提出Pull requests合并请求,我将感激不尽! 2023年9月1日更新 更新了对话机器人返回帮助界面功能,用户发送“帮助”,返回机器人使用说明 20

    2024年02月03日
    浏览(125)
  • ElastAlert通过飞书机器人发送报警通知

    公司采用ELK架构搜集业务系统的运行日志,以前开发人员只有在业务出现问题的时候,才会去kibana上进行日志搜索操作,每次都是被用户告知系统出问题了,这简直是被啪啪打脸~ 于是痛定思痛,决定主动出击,查阅了许多资料,发现ElastAlert这个服务能够对elasticsearch的索引按

    2024年02月07日
    浏览(42)
  • 【Postman】调用飞书机器人接口发送消息

    1、进入飞书,新建一个群组,添加机器人 2、点击该机器人,复制webhook地址 3、打开postman,在url中输入该webhook地址,输入需要请求的json内容,点击发送 内容例如: 4、飞书就会收到对应的消息推送了 5、请求内容的格式参见飞书机器人文档 自定义机器人指南

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包