iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >飞书自动发送消息-自动群发消息
  • 782
分享到

飞书自动发送消息-自动群发消息

PHPPoweredby金山文档 2023-09-01 10:09:06 782人浏览 薄情痞子
摘要

需求: 想通过飞书,定时发送自定义消息给指定的人员或者所有人员.自定义消息可以是文字,图片或音视频. 解决思路: 在飞书创建一个类似微信公众号一样的群发工具 在这个群发工具后台配置功能,获取相关的秘钥 编写代码, 封装好发送

需求:

想通过飞书,定时发送自定义消息给指定的人员或者所有人员.自定义消息可以是文字,图片或音视频.

解决思路:

  1. 在飞书创建一个类似微信公众号一样的群发工具

  1. 在这个群发工具后台配置功能,获取相关的秘钥

  1. 编写代码, 封装好发送消息的相关函数

  1. 设置好消息,调用发送消息函数,完成发消息的需求

准备工作:

  1. 拥有飞书管理后台的相关权限(我是超级管理员-全部权限)

  1. 会一种开发语言PHP,Java或python等(我是php开发).

详细步骤:

  1. 在飞书管理后台创建应用,

  1. 飞书管理后台->工作台->应用管理->创建应用(这里会跳转到开放平台)->创建企业自建应用->填写相关信息

  1. 在开放平台给新建的应用添加应用能力-机器人

  1. 飞书开放平台->应用能力->添加应用能力->按能力添加->机器人

  1. 配置权限

  1. 应用人员权限,根据需求配置,我这里是所有人

  1. 发送消息权限,这里我全选了:1.通讯录 2.消息与群组 批量开通

  1. 发布版本

  1. 发布版本之后, 管理员会收到消息, 审核通过就创建完成了,接下来就是编写代码了.

  1. 记住应用的应用凭证

  1. 通过文档:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create,编写相关接口

  1. php的代码如下

getFeiShuUserList();        $tenantAccessToken = $this->getTenantAccessToken();        $token = !empty($tenantAccessToken) ? $tenantAccessToken : (!empty($user_access_token) ? $user_access_token : '');        if (empty($token)) return false;                if (!empty($userList)) {            $user_ids = [];            $open_ids = [];            $department_ids = [];            foreach ($userList as $v) {                if (in_array($v['mobile'], self::MOBILE)) {                    $user_ids[] = $v['user_id'];                    $open_ids[] = $v['open_id'];                    $department_ids[] = $v['department_ids'][0];                }            }            if (!empty($department_ids) && is_array($department_ids)) {                $department_ids = array_unique($department_ids);            }            $url = 'https://open.feishu.cn/open-apis/message/v4/batch_send/';            $headers = [                'Authorization' => 'Bearer ' . $token,                'Content-Type' => 'application/json; charset=utf-8',            ];            $data = [                'msg_type' => 'text',                'content' => [                    'text' => $text,                ],                'user_ids' => $user_ids,                //'department_ids' => $department_ids,                //'open_ids' => $open_ids,            ];            $res = (new Client())->post($url, $data, $headers)->send();            if (!empty($res->data) && $res->data['code'] === 0) {                return true;            }        }        return false;    }        public function getFeiShuUserList(): array    {        $userList = [];        $tenantAccessToken = $this->getTenantAccessToken();        $url = 'https://open.feishu.cn/open-apis/contact/v3/users/find_by_department';        $token = !empty($tenantAccessToken) ? $tenantAccessToken : (!empty($user_access_token) ? $user_access_token : '');        if (empty($token)) return $userList;        $headers = [            'Authorization' => 'Bearer ' . $token,        ];        $body = [            'user_id_type' => 'user_id',            'department_id' => '0',            'page_size' => 50,        ];        $res = (new Client())->get($url, $body, $headers)->send();        if (!empty($res->data) && $res->data['code'] === 0 && !empty($res->data['data'])) {            $userList = $res->data['data']['items'];        }        return $userList;    }        public function getTenantAccessToken(): string    {        $config = \Yii::$app->params['feiShu'];        $url = 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal';        $headers = [            'Content-Type' => 'application/json; charset=utf-8',        ];        $body = [            'app_id' => $config['app_id'],            'app_secret' => $config['app_secret'],        ];                $tenant_access_token = \Yii::$app->redis->get(ServerDataConst::FEI_SHU_TENANT_ACCESS_TOKEN);        if (empty($tenant_access_token)) {            $res = (new Client())->post($url, $body, $headers)->send();            if (!empty($res->data) && $res->data['code'] === 0) {                $tenant_access_token = $res->data['tenant_access_token'];                                \Yii::$app->redis->set(ServerDataConst::FEI_SHU_TENANT_ACCESS_TOKEN, $tenant_access_token);                \Yii::$app->redis->expire(ServerDataConst::FEI_SHU_TENANT_ACCESS_TOKEN, 3600 * 2 - 10);            }        }        return $tenant_access_token;    }        public function sendMsgOne(string $text): array    {        $userList = $this->getFeiShuUserList();        //var_dump(json_encode($userList,256));die;        $tenantAccessToken = $this->getTenantAccessToken();        $token = !empty($tenantAccessToken) ? $tenantAccessToken : (!empty($user_access_token) ? $user_access_token : '');        if (empty($token)) return false;                $successUser = [];                if (!empty($userList)) {            $receive_id_type = 'open_id';            $receive_id_type = 'user_id';            $url = 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=' . $receive_id_type;            $headers = [                'Authorization' => 'Bearer ' . $token,                'Content-Type' => 'application/json; charset=utf-8',            ];            foreach ($userList as $v) {                if (in_array($v['mobile'], self::MOBILE)) {                    $data = [                        'receive_id' => $v[$receive_id_type],                        'msg_type' => 'text',                        'content' => json_encode(['text' => $text,                        ], 256),                        'uuid' => Helpers::quickRandom(10) . '-' . Helpers::quickRandom(10) . '-' . Helpers::quickRandom(10),                    ];                    $res = (new Client())->post($url, $data, $headers)->send();                    if (!empty($res->data) && $res->data['code'] === 0) {                        $successUser[] = $v['name'];                    } else {                        //var_dump($res);die;                                                \Yii::$app->logger->_logger(\Yii::$app->logger::_LL_INFO,   //日志类型basename(__FILE__) . '->' . __FUNCTioN__ . '()--第' . __LINE__ . '行--' //文件名 - 函数 - 行数. '--发送消息失败--$v:' . JSON_encode($v, 256)                        );                    }                }            }        }        return $successUser;    }}

使用时调用方法

(new FeiShuService)->sendMsGone('收到消息请回复~');

以上就是我几天慢慢摸索的过程, 如有疑问或建议请留言,大家共同学习探讨进步

来源地址:https://blog.csdn.net/qq_37192063/article/details/129489526

--结束END--

本文标题: 飞书自动发送消息-自动群发消息

本文链接: https://www.lsjlt.com/news/388150.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 飞书自动发送消息-自动群发消息
    需求: 想通过飞书,定时发送自定义消息给指定的人员或者所有人员.自定义消息可以是文字,图片或音视频. 解决思路: 在飞书创建一个类似微信公众号一样的群发工具 在这个群发工具后台配置功能,获取相关的秘钥 编写代码, 封装好发送...
    99+
    2023-09-01
    PHP Powered by 金山文档
  • 千牛自动发送消息怎么发?来试试UiBot千牛消息发送机器人
    千牛是专供淘宝卖家和天猫商家使用的工作软件,可以说是卖家旺旺的升级版,很多客户对于千牛自动发送消息有很大的需求,但又不知如何在千牛自动发送消息。其实在千牛自动发送消息很简单,来试试UiBot千牛机器人就知道了。千牛机器人基于RPA技术,支持...
    99+
    2023-06-05
  • 如何用Python自动给朋友发送消息
    这篇文章主要讲解了“如何用Python自动给朋友发送消息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用Python自动给朋友发送消息”吧!首先我们下载两个要用的Python库,在命令行...
    99+
    2023-06-17
  • Python如何实现APP自动化发微信群消息
    本篇内容主要讲解“Python如何实现APP自动化发微信群消息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何实现APP自动化发微信群消息”吧!1. 前言但是对于很多人来说,首先编...
    99+
    2023-06-26
  • Python|怎么自动定时在微信中发送消息
    这篇文章将为大家详细讲解有关Python|怎么自动定时在微信中发送消息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。    用Python编程语言,做一个简单的Demo演示如何自动发送...
    99+
    2023-06-06
  • Python自制微信机器人:群发消息、自
    运营公众号也有半年了,今年5月份开始的,之前一直用一款windows工具来运营自动接受好友请求、群发文章、自动回复等操作,但颇有不便。 举几个场景: 突然在外面看到一篇文章很好,临时写了一篇,想群发一下。 好友加我微信后,每次都要手动...
    99+
    2023-01-31
    机器人 消息 Python
  • 教你用vbs实现微信自动发送消息功能
    目录前言1、微信自动回复消息2、vbs脚本运行方式总结前言 最近对电脑或手机自动进行某些操作很感兴趣,于是去看了一下有关手机电脑微信自动回复消息相关的东西,发现很多恶搞代码不仅可以通...
    99+
    2024-04-02
  • 怎么用vbs实现微信自动发送消息功能
    这篇文章主要介绍了怎么用vbs实现微信自动发送消息功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用vbs实现微信自动发送消息功能文章都会有所收获,下面我们一起来看看吧。1、微信自动回复消息微信,作为日前...
    99+
    2023-06-30
  • Python怎么实现自动给指定好友发送消息
    这篇文章主要讲解了“Python怎么实现自动给指定好友发送消息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么实现自动给指定好友发送消息”吧!...
    99+
    2024-04-02
  • Python实现飞书机器人定时发送文本、图片等群消息
    工作中会经常遇到监控告警相关问题,监控和告警的目的是要在事中及时发现问题并定位系统问题,那么当系统或平台出现问题了,如何及时暴露这些问题给对应的项目开发人员呢? 本文记录了在Python项目中利...
    99+
    2023-09-06
    python chatgpt
  • MFC模拟实现自定义消息发送
    目录自定义消息第一步:定义自定义消息名称以及ID第二步:发送自定义消息第三步:自定义消息映射第四步:自定义消息实现模拟系统消息wParam参数LPARAM参数在MFC框架下,有很多系...
    99+
    2024-04-02
  • Python实现APP自动化发微信群消息的示例代码
    目录1. 前言2. 爬虫及服务3. 自动化发送群聊​4. 最后1. 前言 但是对于很多人来说,首先编写一款 App 需要一定的移动端开发经验,其次还需要另外编写无障碍服务应用,如此显...
    99+
    2024-04-02
  • C#模拟实现鼠标自动点击与消息发送功能
    目录实现功能开发环境实现代码实现效果一个简单的实现版本,没有去Hook键鼠等操作,事先录制好操作步骤(将鼠标移动到需要操作的位置,按下热键执行相应动作),点击运行即可。 主要还是用w...
    99+
    2024-04-02
  • python自动化实现自动回复QQ消息
    目录前言1.需要安装的相关软件和python模块2. 连接手机3.测试是否连接成功4.代码实现5. 总结前言 近段时间,看了一下运用python实现app自动化的视频,觉得那上面的讲...
    99+
    2024-04-02
  • 小程序发送订阅消息,微信公众号发送消息模板
    首先讲两个注意事项 小程序和微信公众号的用户openid是不同的。 小程序需要用户手动授权订阅消息通知(一次性订阅是订阅一次发一次,长期订阅可以多发)。 关于小程序和公众号AppID和AppSecret的获取可以自行百度一下,挺简单的。 小...
    99+
    2023-08-31
    小程序 php
  • FCM( Firebase) 发送推送消息PHP
    Firebase 的管理后台也有发送测试消息推送的入口,在左侧栏目的 Cloud Messaging 准备工作: 1、准备好 服务器秘钥, 如图 打开postman , 创建一个新的api 请求 1...
    99+
    2023-09-02
    php json 开发语言
  • 利用python对微信自动进行消息推送
    from wxpy import * #该库主要是用来模拟与对接微信操作的 import requests from datetime import datetime import time import schedule fro...
    99+
    2023-01-30
    消息 python
  • Python实现自动发消息自定义内容的操作代码
    目录一、效果二、开发环境三、关键步骤解析总结有时候让了解放双手,让电脑来帮我们自动发一些我们想要发的消息,挺省力的,比如说白天写好了演讲稿,晚上要在群里进行文字演讲,那么我们就可以用...
    99+
    2024-04-02
  • PHP微信开发:如何实现群发消息发送记录
    随着微信成为了人们生活中越来越重要的一个通讯工具,其敏捷的消息传递功能迅速受到广大企业和个人的青睐。对于企业而言,将微信发展为一个营销平台已经成为趋势,而微信开发的重要性也逐渐凸显。在其中,群发功能更是被广泛使用,那么,作为PHP程序员,如...
    99+
    2023-05-14
    PHP 微信开发 群发消息发送记录
  • MFC模拟实现自定义消息发送的方法
    这篇文章主要讲解了“MFC模拟实现自定义消息发送的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MFC模拟实现自定义消息发送的方法”吧!在MFC框架下,有很多系统已经定义好的消息,例如O...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作