Download the PHP package calchen/laravel-dingtalk-robot-notification without Composer

On this page you can find all versions of the php package calchen/laravel-dingtalk-robot-notification. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-dingtalk-robot-notification

laravel-dingtalk-robot-notification

钉钉群机器人 Laravel/Lumen 扩展包

Style CI Travis CI Coverage Status Latest Stable Version Total Downloads License

English

这是一个钉钉群机器人的 Laravel/Lumen 消息通知(Notification)扩展包

安装

推荐使用 composer 进行安装:

Laravel

Laravel 5.5+ 已经实现了扩展包发现机制,您不需要进行额外的加载操作,但是依然需要将配置文件发布出来:

Lumen

Lumen 并未移植扩展包自动发现机制,所以需要手动加载扩展包并复制配置文件。

打开配置文件 bootstrap/app.php 并在大约 81 行左右添加如下内容:

将文件系统配置文件从 vendor/calchen/laravel-dingtalk-robot-notification/config/dingtalk_robot.php 复制到 config/dingtalk_robot.php

非 Laravel/Lumen 框架

无需考虑加载问题,请使用全局函数 \dingtalk_robot() 或直接创建 \Calchen\LaravelDingtalkRobot\DingtalkRobot 实例,以发送消息。

配置

打开配置文件 config/dingtalk_robot.php 并按照如下格式添加或修改配置:

请注意,如果需要配置多个机器人,请重复以上操作,并为不同机器人给予不同的 robotName

配置说明

配置项 必须 数据类型 说明 备注
http_client_name string/null Guzzle 实例的名称 默认值:null,注入在 Laravel 中的 Guzzle 实例的名称,以便替换 HTTP 客户端
robotName string 机器人名称 这个名称为了区别不同的机器人
access_token string 创建机器人后 Webhook URL 中 access_token 的值
timeout int/float 超时时间 默认值:2.0秒,具体见 Guzzle 文档
security_types array 安全设置 旧机器人是不存在该项配置的传 null 或不设置该配置项;新机器人可以组合选择:自定义关键字、加签、IP地址(段)
security_types.* string/null 设置项 枚举值:null、keywords、signature、ip
security_signature string 安全模式包含加签时需要的密钥字符串 应当以 SEC 开头

获取 access_token 并设置安全设置

首先在钉钉群选择添加一个群机器人(智能群助手),如果您不知道如何设置请查看 钉钉文档,请注意这里需要设置的是"自定义"类型的机器人。

根据您的需要设置机器人名字,并选择安全设置。在完成后您将获得一个 webhook 地址,该地址中 access_token 的值即配置中使用到的 access_token 的值, 请妥善保存该 access_token。选择的安全设置就是配置中 security_types 的值,如果您选择了“加签”的安全设置,您还需要妥善保存密钥,该密钥即配置中 security_signature 的值

HTTP 客户端注入

为了方便在某些情况下需要统一管理扩展包使用的 HTTP 客户端,提供了 http_client_name 配置项,以实现从 Laravel 容器中获取已经注入的 Guzzle 实例。如果您不需要手动管理 HTTP 客户端,您可以不设置该配置项或将该配置项值设置成 null。

使用方法

Tips:为了方便快速调试功能,内置了一个使用了 Notifiable Trait 的类:Calchen\LaravelDingtalkRobot\Robot ,以下均以此对象为例,实际开发中请务必根据您项目情况进行对应处理。

首先需要先创建一个 TestDingtalkNotification ,如果是 Laravel 可通过 artisan 命令创建

如果是 Lumen 那么可能需要您手动创建 app/Notifications 文件夹并创建 TestDingtalkNotification.php 文件

根据 Laravel 文档发送通知可以使用 Notifiable Trait

也可以使用 Notification Facade

重点:

TestDingtalkNotification 中的 toDingTalkRobot 方法中可使用下面的五种消息类型。

文本类型消息

link 类型消息

markdown 类型消息

ActionCard 类型消息

整体跳转类型

独立跳转类型

FeedCard 类型消息

使用消息通知(Notification)给多个机器人发同一条消息

不使用消息通知(Notification)

如果在非 Laravel/Lumen 框架中使用或者您不想使用 Notification ,而是直接调用机器人接口发送信息,那么有多种方式可以实现:

容器解析

辅助函数 dingtalk_robot

直接创建并调用接口

从1.x升级到2.x

首先感谢您使用 1.x 版本的扩展包,因为钉钉机器人更新了安全设置,在升级过程中为了使得代码更整洁因此出现了无法兼容的情况,故此将新版升级至2.x版本。这里将明确给出两个版本的差异,以便您以最少的成本进行升级。

配置项的差异

新增

http_client_name

为了方便在某些情况下需要统一管理扩展包使用的 HTTP 客户端,提供了 http_client_name 配置项,以实现从 Laravel 容器中获取已经注入的 Guzzle 实例。如果您不需要手动管理 HTTP 客户端,您可以不设置该配置项或将该配置项值设置成 null。

机器人名称.security_types

数据结构为数组。如果您使用的是旧机器人,配置项中无“安全设置”相关内容,那么您可以不设置该字段,或将其设置成:

如果您使用的是新机器人,请按照机器人的实际情况配置该项,可以组合选择:自定义关键字、加签、IP地址(段),如:

机器人名称.security_signature

密钥字符串。当安全模式包含加签时该字段是必须的。请注意,该字符串前三位应该是 SEC。

鸣谢

感谢 王举,他的 wangju/ding-notice 项目给予了我很多启发。本项目中的部分代码原形来自于该项目。

感谢 aolinver,他为本项目实现了部分可以设置链接的消息的链接在 PC 端用系统默认浏览器打开的功能。

开源协议

MIT


All versions of laravel-dingtalk-robot-notification with dependencies

PHP Build Version
Package Version
Requires php Version ^7.0
ext-json Version *
guzzlehttp/guzzle Version ^6.3.1|^7.0.1
illuminate/notifications Version ^5.5|^6.0|^7.0|^8.0
illuminate/support Version ^5.5|^6.0|^7.0|^8.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package calchen/laravel-dingtalk-robot-notification contains the following files

Loading the files please wait ....