飞书群聊机器人自定义机器人接入,并实现艾特@群成员功能

飞书群聊机器人还是比钉钉的要麻烦一点,钉钉的直接通过手机号就可以艾特群里面的人,但是飞书的要想艾特群里面的人,需要使用用户的 Open ID 或 User ID。这两个ID怎么获取呢?还需要在飞书的开放平台上创建一个应用,然后通过调用api接口查询出来!真的麻烦死了

创建群聊机器人

详细官方文档:在群组中使用机器人

一个群最多可添加 99 个机器人。创建完机器人之后,会给你一个webhook地址,后面通过这个地址接口,才可以给群成员发消息。自定义机器人的频率控制和普通应用不同,为 100 次/分钟,5 次/秒。

获取用户ID

详细官方文档:开发文档 - 飞书开放平台

向自定义机器人 webhook 地址发送 POST 请求时,支持推送的消息格式有 文本富文本图片消息 以及 群名片 等,其中通过文本消息即可实现@群成员功能。然后实现@群成员功能的话,还需要有用户的ID。

获取用户ID的方法

看详细官方文档:开发文档 - 飞书开放平台 

需要使用飞书开放平台 API 调试台来获取,而调用这个API调试台需要一个应用,那么就需要创建一个应用:飞书开放平台

按照提示创建完成后:在左侧权限管理里面找到获取用户ID的权限,好在这两个权限申请是不需要审核的,直接申请就可以获取到。

开通权限后,需要到API调试台页面,打开这个页面,然后点击API调试台:开发文档 - 飞书开放平台,api调试台地址:开发文档 - 飞书开放平台

打开之后,还需要点击获取tenant_access_token:

然后到请求体里面,填写用户的手机号:可以填写多个,然后点击开始调试,就会反回用户的ID

发送群聊@消息

用了这个用户ID就可以添加到文本里面,实现艾特指定人的功能,下面给你一个测试的CURL,然后导入到Postman,更改你的webhook地址和用户ID即可:

curl --location '你的webhook地址' \
--header 'Content-Type: application/json' \
--data '{
    "msg_type": "post",
    "content": {
        "post": {
            "zh_cn": {
                "title": "项目更新通知",
                "content": [
                    [
                        {
                            "tag": "text",
                            "text": "项目有更新: "
                        },
                        {
                            "tag": "a",
                            "text": "请查看",
                            "href": "http://www.example.com/"
                        },
                        {
                            "tag": "at",
                            "user_id": "用户ID"
                        }
                    ]
                ]
            }
        }
    }
}'

在postman中发送消息测试:

群消息就会收到:

### Laravel 中配置飞书机器人 API 监听艾特消息 为了在 Laravel 项目中配置飞书机器人以监听群内成员艾特机器人的消息,可以按照以下方法操作: #### 创建控制器处理请求 创建一个新的控制器用于接收来自飞书的消息推送。此控制器负责验证事件的真实性,解析接收到的数据。 ```php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; class FeishuBotController extends Controller { public function webhook(Request $request){ // 获取 POST 请求体中的 JSON 数据 $data = json_decode($request->getContent(), true); // 检查是否有提及 (@) 的情况发生 if (isset($data['event']['type']) && $data['event']['type'] === 'message') { foreach ($data['event']['mention_list'] as $mention) { if ($mention['id'] == env('FEISHU_BOT_ID')) { // 判断是否被@到 // 处理逻辑... // 返回响应给飞书服务器确认已接受通知 return response()->json(['status' => 'success'], Response::HTTP_OK); } } } return response('', Response::HTTP_NO_CONTENT); } } ``` 该段代码展示了如何定义一个 `webhook` 方法来捕获 HTTP POST 请求从中提取数据[^1]。 #### 注册路由映射 编辑项目的路由文件 (`routes/web.php`) 来注册新的端点供外部调用。 ```php Route::post('/feishu-webhook', [FeishuBotController::class, 'webhook']); ``` 这一步骤使得当有人在群里提到机器人时,飞书将会把相关信息POST至指定URL地址 `/feishu-webhook` 上。 #### 设置环境变量 确保已经在 `.env` 文件里设置了必要的参数比如 `FEISHU_APP_ID`, `FEISHU_APP_SECRET` 和 `FEISHU_VERIFICATION_TOKEN`. 这些信息可以从飞书开发者后台获得。 ```plaintext FEISHU_APP_ID=your_app_id_here FEISHU_APP_SECRET=your_secret_key_here FEISHU_VERIFICATION_TOKEN=verification_token_value FEISHU_BOT_ID=bot_user_id ``` 这些设置允许应用程序安全地与飞书交互而不暴露敏感凭证。 #### 完成飞书应用配置 最后,在飞书开发者平台上完成应用的相关配置工作,包括但不限于填写回调 URL(即上面设定的路由)、选择需要订阅的通知类型等选项。 通过上述步骤可以在 Laravel 应用程序内部成功集成飞书机器人功能,从而实现实时监控群聊内的 @ 提醒作出相应反应的能力。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1024小神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值