当前位置: 首页 > news >正文

Hyperf方案 飞书机器人消息推送 - 实现向指定飞书群组或用户发送文本/富文本/图片消息(基本版本)

飞书机器人消息推送-Hyperf 实现步骤1.安装依赖 composer require guzzlehttp/guzzle Hyperf 自带 hyperf/guzzle,直接用: composer require hyperf/guzzle---2.配置 Webhook 在.env 或 config/autoload/feishu.php 中:// config/autoload/feishu.phpreturn['webhook'=>env('FEISHU_WEBHOOK','https://open.feishu.cn/open-apis/bot/v2/hook/YOUR_TOKEN'),'secret'=>env('FEISHU_SECRET',''),// 如果开启了签名校验];---3.创建消息封装类 app/Service/FeishuBot.php<?phpnamespaceApp\Service;use Hyperf\Guzzle\ClientFactory;use Hyperf\Contract\ConfigInterface;classFeishuBot{privatestring $webhook;privatestring $secret;publicfunction__construct(privateClientFactory $clientFactory,privateConfigInterface $config){$this->webhook=$config->get('feishu.webhook');$this->secret=$config->get('feishu.secret','');}// 发送纯文本publicfunctionsendText(string $text):array{return$this->send(['msg_type'=>'text','content'=>['text'=>$text],]);}// 发送富文本(post 类型)publicfunctionsendRichText(string $title,array $content):array{return$this->send(['msg_type'=>'post','content'=>['post'=>['zh_cn'=>['title'=>$title,'content'=>$content,// content 示例:// [[['tag'=>'text','text'=>'hello'],['tag'=>'a','text'=>'链接','href'=>'https://...']]]],],],]);}// 发送图片(需先上传获取 image_key)publicfunctionsendImage(string $imageKey):array{return$this->send(['msg_type'=>'image','content'=>['image_key'=>$imageKey],]);}// 发送交互卡片publicfunctionsendCard(array $card):array{return$this->send(['msg_type'=>'interactive','card'=>$card,]);}privatefunctionsend(array $payload):array{if($this->secret){[$timestamp,$sign]=$this->sign();$payload['timestamp']=$timestamp;$payload['sign']=$sign;}$client=$this->clientFactory->create(['timeout'=>5]);$response=$client->post($this->webhook,['json'=>$payload]);returnjson_decode($response->getBody()->getContents(),true);}// 签名(飞书安全设置开启时需要)privatefunctionsign():array{$timestamp=(string)time();$str=$timestamp."\n".$this->secret;$sign=base64_encode(hash_hmac('sha256','',$str,true));return[$timestamp,$sign];}}---4.注册到容器(可选,推荐) config/autoload/dependencies.phpreturn[\App\Service\FeishuBot::class=>\App\Service\FeishuBot::class,];---5.使用示例// 在 Controller 或 Command 中注入使用publicfunction__construct(privateFeishuBot $bot){}// 文本$this->bot->sendText('服务器告警:CPU 使用率超过 90%');// 富文本$this->bot->sendRichText('部署通知',[[['tag'=>'text','text'=>'环境:'],['tag'=>'text','text'=>'production','style'=>['bold']],],[['tag'=>'a','text'=>'查看详情','href'=>'https://your-ci.com/build/123'],],]);---关键点汇总 ┌──────────────┬───────────────────────────────────────────────┐ │ 要点 │ 说明 │ ├──────────────┼───────────────────────────────────────────────┤ │ Webhook 地址 │ 飞书群 → 设置 → 机器人 → 添加自定义机器人获取 │ ├──────────────┼───────────────────────────────────────────────┤ │ 签名校验 │ 开启后必须带 timestamp+sign,否则403│ ├──────────────┼───────────────────────────────────────────────┤ │ 图片消息 │ image_key 需通过飞书上传图片 API 预先获取 │ ├──────────────┼───────────────────────────────────────────────┤ │ 频率限制 │ 同一机器人5/秒,100/分钟 │ ├──────────────┼───────────────────────────────────────────────┤ │ 超时设置 │ Guzzle timeout 建议3-5s,避免阻塞协程 │ └──────────────┴───────────────────────────────────────────────┘
http://www.jsqmd.com/news/621363/

相关文章:

  • 11.从Demo到工程:RAG/Agent系统的日志、配置与异常处理
  • 别再死记硬背!用Multisim仿真带你直观理解TTL反相器的工作原理
  • Mbed平台任意引脚软件PWM库实现与应用
  • SSD1289 TFT-LCD驱动开发:Cariad车载平台实战指南
  • DeepSeek与LangGraph共享单车需求数据预测:LSTM与XGBoost多模型融合方法及Streamlit可视化应用 | 附代码数据
  • OpenAI团队编程Agent的Harness工程实践
  • 2026年靠谱的光化反应釜/LED 光催化反应釜厂家综合对比分析 - 品牌宣传支持者
  • hybrid实验
  • TLCBuffer:嵌入式时序数据的时间长度压缩缓冲区
  • 2026代理记账收费标准top3名录:深圳注册公司后税务登记及记账报税/深圳注册公司常见原因及技巧/选择指南 - 优质品牌商家
  • LangChain模块(六)Agent智能体
  • Google 迎来「DeepSeek 时刻」:TurboQuant算法实现bit无损、×加速、×压缩、零预处理督
  • FlashStringTable:嵌入式Arduino的PROGMEM字符串高效管理方案
  • 新能源车全生命周期测试标准体系:从NVH性能到环境适应性及关键部件验证
  • LangChain进阶(三)CAMELBabyAGI
  • 2026年收费合理的昆山劳动律师热选事务所推荐 - 品牌宣传支持者
  • 2026奇点智能技术大会闭门报告(仅限首批287家签约企业的API架构白皮书节选)
  • 技术人的沟通圣经:软件测试工程师如何向产品经理讲透技术方案
  • 别再让用户看到白屏!UniApp应用‘优雅退出’的避坑指南与实现
  • 我的个人AI知识管家:用DeepSeek R1和ChromaDB给本地文档做个“搜索引擎”
  • 单相逆变器并机实战:基于SOGI下垂控制的功率均分与参数整定
  • 极简安卓指南—Termux快速部署Ubuntu(零基础入门)
  • LangChain进阶(二)RAG与真实应用落地
  • 电视盒子刷游戏系统emuelec 辣娃娃战神系统4.7.1-57g-最终版-V2.1(2026更新)
  • 基于Python的PC微信自动化探索:uiautomation+OpenCV+EasyOCR蹲
  • OpenClaw与WinClaw核心差异解析
  • Rhino_KO韩语语音意图识别SDK嵌入式集成指南
  • PUBG罗技鼠标宏终极指南:三步完成压枪脚本快速配置与实战优化
  • 多模态Embedding指南
  • MediaPipe人体姿态识别避坑指南:从环境配置到模型调优