php钉钉(php钉钉sdk)

华为云服务器特价优惠火热进行中!

2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。

合作流程:
1、点击链接注册/关联华为云账号:点击跳转
2、添加客服微信号:cloud7591,确定产品方案、价格方案、服务支持方案等;
3、客服协助购买,并拉微信技术服务群,享受一对一免费技术支持服务;
技术专家在金蝶、华为、腾讯原厂有多年工作经验,并已从事云计算服务8年,可对域名、备案、网站搭建、系统部署、AI人工智能、云资源规划等上云常见问题提供更专业靠谱的服务,对相应产品提供更优惠的报价和方案,欢迎咨询。

今天给各位分享php钉钉的知识,其中也会对php钉钉sdk进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

微信号:cloud7591
如需了解更多,欢迎添加客服微信咨询。
复制微信号

本文目录一览:

外包管理人员怎么使用钉钉管理人员

考勤心得_基于钉钉考勤数据自动化处理的实践 原创

2021-01-12 04:22:33

兰小龙

码龄4年

关注

基于钉钉考勤数据自动化处理的实践

点击上方“技术支持联盟”,选择“置顶公众号”

第一时间了解程序员大小事儿

作者:冬日暖阳

摘要:随着公司业务拓展,科技赋能的推进,系统逐渐增多,相应外包公司及人员也在迅速扩充,人员管理问题日渐突出,为了能够更有效的管理外包人员,通过对接钉钉考勤信息,用数据了解部门中外包实际工作情况。

41b232f56ae0dd4e741bb77b9a38d4f5.png

01

痛点

厂商过多

外包厂商过多,无各个厂商单独钉钉情况,只有组内每月汇总,不好逐日逐周的追踪本组内外包厂商详情,从而及时调整组内外包人员工作积极性。

人员流动性大

外包人员流动性大,没有数据支撑,无法对人员个体及整体情况进行总结,通过数据从侧面了解外包工作时长、工作态度及工作能力,通过打卡详情数据,做到精确管理,典型追踪。

0 2

钉钉小程序创建

通过企业内部自建应用创建小程序:

7afa30ac53e5e7b0e4afd5f5bfdedf5e.png

1.登录钉钉开发者后台。

说明:只有管理员和子管理员可登录开发者后台。

2.在应用开发页面,选择企业内部开发 小程序,然后单击创建应用。

6b7b107fe1e1b179695d3aadfbc6fcba.png

3.填写应用的基本信息,然后单击确定创建。 693e5b3380bea371d60fd3d5a8321674.png

4.在应用信息页面,单击开发管理,然后单击修改。

216a6445077e1ab27c50e63b4bae5f8b.png

5.根据以下信息配置开发信息,然后单击保存。

服务器出口IP:输入调用钉钉服务端API时使用的IP即企业服务器的公网IP,多个IP请以","隔开,支持带一个*号通配符的IP格式。

说明:同一个IP只能被一个企业使用。

6.管理后台地址(可选):输入管理后台地址。

在钉钉管理后台-工作台-找到对应应用,点击应用图标,跳转到填写的地址。如设置为,登录钉钉管理后台,点击进入后如图所示。

bbae44bfc209fad6d16d1df707ca7bab.png

7.单击凭证与基础信息获取应用的AppKey和AppSecret。

965e932c999ea8e2199639ea43713d10.png

03

现阶段实现功能

日、周、月情况汇总,包含:

①外包厂商报备人员及打卡人员(含远程)对比,计算打卡率;

②汇总缺卡及缺勤人员详情及月度统计名单;

③汇总迟到人员(打卡时间9:30以后且前一天21:00之前打卡离场)及月度统计名单;

④工作时长统计:考勤打卡总时长、打卡人数、平均时长以及排名情况。

当日

a6c18eef00e16582a8da7f7585d3fe9a.png

当月

bcc40c47c755f8eff506456d52ff2a65.png

当周

5da859fff4099aada4cd239b7a9270dc.png

04

后续功能规划

1.覆盖范围由新一代组转为所有产品组

2.根据人力日常需要的信息调整规则,自动提供日、周、月数据,并发送邮件;

3.将考勤人员与外包管理系统人员进行统一关联管理

4.邮件板式调整,使整体更直观

历史文章

解决方案:

开源规则引擎--drools

redis基本原理介绍

spring-session集成redis问题

通过分析Nginx服务器日志统计用户流量并预警

加密与认证技术

【双十一钜惠:科技人的专属保障】移动端交互速度保证 ——影像上传优化

【双十一钜惠:科技人的专属保障】移动端认证保障 ——非对称加密及jwt应用

系统安全建设小经验

公共组件-需求自动录入TAPD

Python初体验

HTML5实现自定义键盘及使用

Sentinel限流

基于公有云实时音视频通道的构建音视频组件方法与实战经验

分布式定时任务调度探讨

阿里云OSS JavaAPI分享

Jmeter压测的使用

API接口安全优化浅谈

基于idea将传统应用maven化改造实践

安全漏洞预扫小工具

Nacos作为注册中心,配置中心部署方案

Rancher+K8S简化学习环境搭建方案

Excel大数据量解析优化方案

Sharding-JDBC个性化分表方案

基于JWT的接口权限认证

Spring Cloud Gateway实现限流

公网发布的通用技术解决方案

Nginx结合Lua实现限流

Mysql数据同步Canal方案

Weblogic部署基于Spring Cloud项目应用实例

智能验证码解析java语言实现

数据库的演绎与变迁-下架最后一台小型机

关于struts架构通过引入spring包实现dubbo调用测试的未来式

架构系列:

双十一钜惠:科技人的专属保障】如何保障移动端活动的稳定运转?——移动端基础平台建设的经验分享

【双十一钜惠:一个有温度的技术公众号】科技人需要什么样的保障

架构师入门系列:架构三板斧“缓存,消息,异步”

监控运维

redis监控工具-redislive

微服务链路追踪工具 Apache SkyWalking部署与实践

快速发现生产环境SQL问题

Grafana-业务数据监控实践

自动化运维能力提升

服务器监控及问题定位排除

基于Spring Boot Admin告警之应用状态告警

Ansible在自动化运维中的使用

自助迁发分支工具

大数据

浅谈大数据平台的建设

基于CDH集群的大数据项目的优化总结

Oracle实时同步大数据平台解决方案

实时流关联维表解决方案

中间件

浅谈Elasticsearch的资源分配

Apache Kafka使用规范Elasticsearch安装及使用

SSDB介绍及使用

RabbitMq使用简单介绍

Spring Cloud常用组件介绍

前端

ESLint + Prettier 规范前端代码

Vue.js对WinXP系统对兼容性

关于采集操作系统、浏览器版本的设计方案及一些浏览器兼容性问题处理

安卓动态加载SO文件

对浏览器的理解及兼容移动端H5本地化方案调研和实践

自适应网页设计

短信/浏览器唤起APP方案

基础知识

Sonar简介

JVM基础系列1:JVM内存模型介绍

JVM基础系列2:JVM配置参数和Java内存模型

JVM基础系列3 虚拟机字节码执行引擎

开发规范

Java异常处理规范

战略方向

金融保险系统开源浪潮下机遇与挑战

项目实战

《Scrum精髓》心得分享

聊一聊我们程序猿--技术交流感悟分享

如何快速支撑健康险业务发展

《凤凰项目-一个IT运维传奇故事》心得分享

运维工作要学会“偷懒”

“用户思维+中台架构”快速搭建金融宝app

多维分保的应用探索

用文化指引自身的成长之路 -2020年技术成长心得分享

从工作中探寻自身的成长之路

从《平凡的荣耀》到记一次兼容性改造优化后的技术感悟

客户为中心,统筹协调,把控风险

让我们的管理看的见

e9a8030862c15ef2ecf82df3b143e727.png E N D

e3ea071dc7c2dc71c07a3d9728741ad9.gif

请识别下方二维码,关注 技术支持联盟6676479fdcd71cfad49094fb892ba681.png

欢迎加入基于钉钉API功能开发交流,请扫码进群

21d039af0f5511c086641a82cd11890f.png

AppKey

打开CSDN APP,看更多技术内容

钉钉开发DEMO

此程序为钉钉应用,亲测可以用,非喜勿喷,有任何疑问可以私信,互相交流

同步考勤数据 钉钉_钉钉考勤打卡攻略①

钉钉考勤打卡是专门针对企业员工上下班打卡的一款考勤应用。考勤打卡应用可以让人事随时随地了解团队状态,出勤人员一目了然;智能统计考勤数据,云端存储,考勤数据永不丢失哦[灵光一闪]一、如何新增考勤组?手机端:点击【工作台】—【考勤】—【设置】—【新建考勤组】电脑端:登录管理后台—【工作台】—【考勤打卡】—【考勤组管理】—【新建考勤组】二、考勤组如何添加人?手机端:点击【工作台】—【考勤打卡】—【设置】...

继续访问

钉钉考勤数据抓取_VBA实战篇|HR们的福利,从此不再为整理考勤记录发狂

提示:这是7月的第1篇原创文章关于整理『考勤记录』的案例如果你喜欢本文,就分享给你的小伙伴,你的喜欢是我前进的最大动力如果你有任何疑问,可以文章下方留言或后台留言在HR的日常工作中,统计考勤是其中一项工作。虽然现在有考勤机、钉钉等高科技的手段进行辅助,但是有些考勤机导出的数据会让各位HR们集体吐槽为何如此反人类的设计。如下图所示,是我一位HR朋友发我的考勤记录(数据已做部分处理),看到这...

继续访问

钉钉API考勤打卡记录获取并存入数据库(python)

前言: 钉钉有个开发平台,通过API可以开发自己企业内部应用,钉钉开发文档顺序写的有点乱,花了挺长时间才看懂,我写了一个python脚本来获取考勤记录,当然能做的不止这些,可以删除公司成员,修改部门,瞎发通知等等。。。(这是上路的新手,大神忽略。) 一、准备 钉钉API地址:....

继续访问

钉钉考勤接口调用与OA系统数据对接

钉钉考勤接口调用与OA系统数据对接 公司由原来的指纹打卡更换为钉钉打卡,需要钉钉和现有的OA考勤数据对接(合并钉钉打卡数据和OA上的请假,外出,出差数据) 1.查看钉钉接口文档 2.项目搭建引入钉钉开发SDK 3.获取钉钉考勤数据存储服务器数据库(调整存储格式) //测试 public s...

继续访问

最新发布 从钉钉后台获取考勤数据(其他数据获取类似)

从钉钉后台获取数据

继续访问

钉钉考勤数据抓取_员工考勤管理系统:如何轻松计算出每月的考勤数据

其实想要达到你这种效果的话有两种方法: 一个是使用考勤机 一个是使用员工考勤管理系统考勤机 一般的企业为了加强自己的考勤管理,使用比较多的就是指纹打卡考勤机,只要上下班的时候通过指纹打卡就行了。优点: 费用低几百到几千就能搞定,适合人数不太多的中小企业,只要在需要整理数据的时候把数据导出到电脑里就行。缺点: 没法儿自动帮你汇总分析,导出来的数据只是作为记录,如果你要计算或者和绩效结合的话,需...

继续访问

钉钉考勤数据抓取_钉钉考勤答疑你关心的都在这里

钉钉/// ///那些事儿///答疑篇 ///为提高工作效率,公司引进钉钉考勤系统替代传统打卡模式,经过一个月的使用,经过前期对数据的分析整理,现将钉钉使用过程中遇到的一些疑惑进行解答。首先请各部门确认所有人员都在“浙江新和成股份有限公司钉钉考勤组”,如果有新员工不在该群组的,部门考勤员要先将人员邀请进考勤组。01.钉钉数据是如何采集的? ...

继续访问

钉钉API考勤打卡记录获取(PHP + JS)

前言: 钉钉有个开发平台,通过API可以开发自己企业内部应用,钉钉开发文档顺序写的有点乱,花了挺长时间才看懂,我建立一个php后端以及一个单独网页(不运行在钉钉上)来获取考勤记录,当然能做的不止这些,可以删除公司成员,修改部门,瞎发通知等等。。。(这是上路的新手,大神忽略,练习下AJAX倒是挺好的。) 一、准备 钉钉API地址: ...

继续访问

热门推荐 获取钉钉考勤机的打卡记录并且解析

有个特别恶心的地方就是打卡信息只能最多一次取七天的。所以要注意一下; 时间格式:2018-05-01 钉钉突然改接口了,直接获取是被拒绝了,加了分页限制,加了人数限制,头大,之前得方法不能用了,重新写了版,最多一次获取50个人的考勤,并且这些人的考勤记录一次只能获取50条,我想了个办法中心思想就是首先拆分公司人员的dingId的列表,拆成每50个一组,然后限制分页最大50个每页,50个人的打...

继续访问

钉钉考勤数据抓取_华跃考勤管理系统

华跃考勤管理系统通过我司考勤系统把人力资源管理重要环节做到及时管控,随时可分析员工日出勤异常报表、周出勤、月出勤等出勤数据。软件兼容先进的现代感应式、RFID、指纹、图像管理等硬件设备,在防止代打卡和混加班等方面有独到的实施经验。可满足不同企业的各种考勤制度,客户自定义的设计使不同行业的用户可根据其所制定的考勤制度对系统进行灵活设置。智能排班的自动抓取让您对排班无需进行任何操作,班次采用...

继续访问

积分-钉钉考勤-取参与考勤人员

钉钉考勤接口调用与OA系统数据对接(多线程版)

钉钉考勤接口调用与OA系统数据对接(多线程版) 公司由原来的指纹打卡更换为钉钉打卡,需要钉钉和现有的OA考勤数据对接(合并钉钉打卡数据和OA上的请假,外出,出差数据),因为人数增减单线程定时任务数据抓取时间较长,做一下优化 1.线程池 class CountableThreadPool { private int threadNum; private AtomicInteger...

继续访问

从钉钉后台对接考勤打卡信息(仅供参考)

# -*- coding: utf-8 -*- import requests, logging, json, openpyxl, os, time #官方下载SDK import dingtalk.api from datetime import datetime as dt from datetime import timedelta import xlsxwriter import configparser import datetime logging.basicConfig(level=logg

继续访问

dingtalk 一个让钉钉服务端开发更简单的golang工具库

dingtalk 这是一个集成钉钉常用功能的简易版服务端开发工具库,适用于创建一次客户端,多次调用的场景。内置token过期时间维护;内置用户id到用户userid的计算函数,可以方便的在企业用户名与userid之间自动转换;同时在reduce函数中可以设置加入白名单过滤,避免在测试环境中发信息给非白名单用户。具体参数说明,请参考钉钉开发文档 仓库地址 安装 go get -u github.com/kevin2027

继续访问

【钉钉-场景化能力包】制造业考勤数据多维分析

企业结合钉钉考勤的能力后,可以获取钉钉的考勤数据,并将考勤数据从时间、机构、部门、人员等多个维度进行横向纵向比对分析,从而了解一段时间内企业考勤情况的变化趋势以及各个部门在提升考勤率方面的成果对比,并通过宣导、鼓励和问责等方式进一步提升员工的工作效能,逐步提升企业整体的考勤达成率。

继续访问

钉钉机器人交互

1.创建好机器人

2.搭建好消息接收服务器,此处用php实现

当@机器人时,机器人会post一段消息到php

php可以处理过后在通过webhook返回消息

php怎么获取钉钉员工授权信息?

做过一个E应用,使用lumen框架,和你的思路是一样的,新用户点进去就自动授权注册应用,数据存到我们自己的数据库中,不依赖钉钉,我们还同步了部门信息,如果粘贴复制和下面的那个同学一样,看上去你也会觉得懵,方法都是封装好了的。

建议你这样试试看:

 获取AccessToken:

后端通过corpid,corpsecret请求接口gettoken?corpid=idcorpsecret=secrect获取AccessToken

获取钉钉用户userid:

前端需要相应的处理,携带authCode请求,加上AccessToken这两个参数请求接口/user/getuserinfo?access_token=access_tokencode=authCode这个

获取钉钉用户详情:

使用access_token和上一步的钉钉userid 请求接口 /user/get?access_token=ACCESS_TOKENuserid=

插入钉钉用户的数据到你的 数据库中

我们这样做的:

/**

* 钉钉免登陆获获取用信息

* @param $authCode

* @param $url

* @return array

*/

static function outhLogin($authCode, $url)

{

if (empty($authCode) || empty($url)) {

return self::returnError('1101', self::$errorArray['1101']);

}

$accessToken = ComponentDingtalk::getPcAccessToken();

if ($accessToken['code']) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '获取access_token失败');

return self::returnError('1102', self::$errorArray['1102']);

}

$dingUserId = ComponentDingtalk::getDingUserid($accessToken['data'], $authCode);

if ($dingUserId['code']) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '用户userid获取失败(调用钉钉API)');

return self::returnError('1103', self::$errorArray['1103']);

}

$dinguserInfo = ComponentDingtalk::getDingUserInfo($accessToken['data'], $dingUserId['data']);

if ($dinguserInfo['code']) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '用户信息获取失败(调用钉钉API)');

return self::returnError('1104', self::$errorArray['1004']);

}

$userInfo = $dinguserInfo['data'];

return self::transaction(function () use ($accessToken, $userInfo, $url) {

if (\count($userInfo['department']) 1) {

$departIdArr = [];

$departNameArr = [];

for ($i = 0, $iMax = \count($userInfo['department']); $i $iMax; $i++) {

$departInfo[$i] = ServerDepartment::getByDdDepartid($userInfo['department'][$i]);

$departIdArr[] = $departInfo[$i]['id'];

$departNameArr[] = $departInfo[$i]['name'];

}

$depart['id'] = implode(',', $departIdArr);

$depart['name'] = implode(',', $departNameArr);

} else {

$ddDepartmentId = implode(',', $userInfo['department']);

$depart = ServerDepartment::getByDdDepartid($ddDepartmentId);

}

//插入用户

$user = ServerEmployee::getByDdUserid($userInfo['userid']);

if ($user $user['status'] == 2) {

return self::returnError('1105', self::$errorArray['1105']);

}

if (empty($user)) {

$roleId = 0;

$departId = $depart['id'];

$name = $userInfo['name'];

$mobile = $userInfo['mobile'];

$departName = $depart['name'];

$position = $userInfo['position'];

$ddUserid = $userInfo['userid'];

$ddStatus = $userInfo['active'] ? 1 : 2;

$ddInfo = json_encode($userInfo, JSON_UNESCAPED_UNICODE);

$tokenOverAt = (int)(time() + $_ENV['PROJECT_apiAppTokenOverTime']);

$token = self::_createToken($userInfo['userid'], $tokenOverAt);

$status = 1;

$userId = ServerEmployee::insert($roleId, $departId, $name, $mobile, $departName, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status);

if (!$userId) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '用户初始化创建失败');

return self::returnError('1106', self::$errorArray['1106']);

}

}

$userId = $userId ?? $user['id'];

// 更新Token

$id = $userId;

$roleId = $user['roleId'];

$departId = $depart['id'];

$name = $userInfo['name'];

$mobile = $userInfo['mobile'];

$departName = $depart['name'];

$position = $userInfo['position'];

$ddUserid = $userInfo['userid'];

$ddStatus = $userInfo['active'] ? 1 : 2;

$ddInfo = json_encode($userInfo, JSON_UNESCAPED_UNICODE);

$tokenOverAt = (int)(time() + $_ENV['PROJECT_apiAppTokenOverTime']);

$token = self::_createToken($userInfo['userid'], $tokenOverAt);

$status = 1;

$updateParams = ServerEmployee::update($id, $roleId, $departId, $name, $mobile, $departName, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status);

if (!$updateParams) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '用户信息更新失败' . json_encode($updateParams, JSON_UNESCAPED_UNICODE) . '/' . json_encode([$id, $roleId, $departId, $name, $mobile, $depart, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status]));

return self::returnError('1107', self::$errorArray['1107']);

}

// 前端的配置信息

// 获取jsTicket

$jsTicket = ComponentDingtalk::getPcJsTicket($accessToken['data']);

if ($jsTicket['code']) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '获取jsTicket失败(调用钉钉API)');

return self::returnError('1111', self::$errorArray['1111']);

}

// 组装签名数据

$curUrl = $url;;

$nonceStr = uniqid('', true);

$agentId = $_ENV['PROJECT_ddInterfaceAgentID'];

$timeStamp = time();

$corpId = $_ENV['PROJECT_ddInterfaceCorpId'];

$signature = ComponentDingtalk::getSign($jsTicket['data'], $nonceStr, $timeStamp, $curUrl);

$config = array(

'url' = urldecode($curUrl),

'nonceStr' = $nonceStr,

'agentId' = $agentId,

'timeStamp' = $timeStamp,

'corpId' = $corpId,

'signature' = $signature

);

// 获取当前角色的权限

$roleInfo = ServerRole::getById($roleId);

// 当前用户的顶级部门(不含根部门)

$departInfo = ServerDepartment::getById($departId);

if ($departInfo['parentid'] == 1) {  // 二级部门(总经办)

$departRootId = $departId;

$departRootName = $departName;

} else {

$sonDepart = ServerDepartment::getById($departInfo['parentid']);//分组

if ($sonDepart['parentid'] == 1) {

$departRootId = $sonDepart['id'];

$departRootName = $sonDepart['name'];

} else {

$grandsonDepart = ServerDepartment::getById($sonDepart['parentid']);//部门

if ($grandsonDepart['parentid'] == 1) {

$departRootId = $grandsonDepart['id'];

$departRootName = $grandsonDepart['name'];

} else {

$grandchildDepart = ServerDepartment::getById($grandsonDepart['parentid']);//分公司

$departRootId = $grandchildDepart['id'];

$departRootName = $grandchildDepart['name'];

}

}

}

$company = ServerDepartment::get(['parentid' = 0, 'dd_departid' = 1]);

return self::returnSuccess(array(

'id' = $userId,

'name' = $name,

'token' = $token,

'tokenOverAt' = $tokenOverAt,

'config' = $config,

'power' = $roleInfo['power'] ?? '',

'departId' = $departId,

'departName' = $departName,

'departRootId' = $departRootId,

'departRootName' = $departRootName,

'company' = $company['name'],

));

}, function (\Exception $e) {

echo $e-getMessage();

self::logError(__CLASS__ . '-' . __FUNCTION__, $e-getMessage());

return self::returnError('1108', self::$errorArray['1108']);

});

}

php 使用钉钉机器人推送消息

群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。目前,大部分机器人在添加后,还需要进行Webhook配置,才可正常使用(配置说明详见操作流程中的帮助链接)。

例如:

通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步。

通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。

另外,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警通过自定义机器人聚合到钉钉群实现提醒功能。

消息发送太频繁会严重影响群成员的使用体验,大量发消息的场景(譬如系统监控报警)可以将这些信息进行整合,通过markdown消息以摘要的形式发送到群里。

每个机器人每分钟最多发送20条。如果超过20条,会限流10分钟。

登录钉钉PC客户端(请升级至最新版),操作入口:

窗口右上角点击【头像】,进入”机器人管理“, 可对所有机器人进行统一管理。

进入一个钉钉群,在群的顶部功能栏中,点击【群设置】,进入菜单可以看到【群机器人】的入口,点击进入“群机器人”的管理面板后,可以进行添加、编辑和删除群机器人的操作。

我们这里使用最后一个webhook

步骤一,在机器人管理页面选择“自定义”机器人,输入机器人名字并选择要发送消息的群。如果需要的话,可以为机器人设置一个头像。点击“完成添加”,完成后会生成Hook地址,如下图:

步骤二,点击“复制”按钮,即可获得这个机器人对应的Webhook地址,其格式如下:

(1)获取到Webhook地址后,用户可以向这个地址发起HTTP POST 请求,即可实现给该钉钉群发送消息。注意,发起POST请求时,必须将字符集编码设置成UTF-8。

(2)当前自定义机器人支持文本 (text)、链接 (link)、markdown(markdown)、ActionCard、FeedCard消息类型,大家可以根据自己的使用场景选择合适的消息类型,达到最好的展示样式。

(3)自定义机器人发送消息时,可以通过手机号码指定“被@人列表”。在“被@人列表”里面的人员收到该消息时,会有@消息提醒(免打扰会话仍然通知提醒,首屏出现“有人@你”)。

(4)当前机器人尚不支持应答机制 (该机制指的是群里成员在聊天@机器人的时候,钉钉回调指定的服务地址,即Outgoing机器人)。

关于php钉钉和php钉钉sdk的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发布于 2023-03-19 04:03:00
收藏
分享
海报
58
目录

    忘记密码?

    图形验证码

    复制成功
    微信号: cloud7591
    如需了解更多,欢迎添加客服微信咨询。
    我知道了