Skip to content

Commit

Permalink
完善文档及细节
Browse files Browse the repository at this point in the history
  • Loading branch information
calchen committed Aug 19, 2020
1 parent a7c73c9 commit 5dff5e9
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 7 deletions.
46 changes: 44 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

> [English](https://github.com/calchen/laravel-dingtalk-robot-notification/blob/master/README_en.md)
这是一个[钉钉群机器人](https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq)的 Laravel/Lumen 消息通知(Notification)扩展包
这是一个[钉钉群机器人](https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq)的 Laravel/Lumen 消息通知(Notification)扩展包

## 安装

Expand Down Expand Up @@ -59,6 +59,7 @@ $app->register(Calchen\LaravelDingtalkRobot\DingtalkRobotNoticeServiceProvider::
## 配置

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

```php
'robotName' => [
'access_token' => 'xxxx',
Expand Down Expand Up @@ -209,6 +210,30 @@ public function toDingTalkRobot($notifiable)
'群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警提醒通过自定义机器人聚合到钉钉群。',
'https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Rqyvqo&treeId=257&articleId=105735&docType=1'
);

// 也可以这样写
// $message = new LinkMessage();
// $message->setMessage(
// '自定义机器人协议',
// '群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警提醒通过自定义机器人聚合到钉钉群。',
// 'https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Rqyvqo&treeId=257&articleId=105735&docType=1'
// );

// 如果想让链接在 PC 端用系统默认浏览器打开可以这样
// $message = new LinkMessage(
// '自定义机器人协议',
// '群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警提醒通过自定义机器人聚合到钉钉群。',
// 'https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Rqyvqo&treeId=257&articleId=105735&docType=1',
// false
// );
//
// $message = new LinkMessage();
// $message->setMessage(
// '自定义机器人协议',
// '群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警提醒通过自定义机器人聚合到钉钉群。',
// 'https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Rqyvqo&treeId=257&articleId=105735&docType=1',
// false
// );

// 这里可以指定机器人,如果不需要指定则默认使用名称为 default 的机器人
$message->setRobot($notifiable->getName());
Expand Down Expand Up @@ -257,6 +282,9 @@ public function toDingTalkRobot($notifiable)
"![screenshot](@lADOpwk3K80C0M0FoA) \n #### 乔布斯 20 年前想打造的苹果咖啡厅 \n\n Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划"
);
$message->setSingle('阅读全文', 'https://www.dingtalk.com/');

// 如果想让链接在 PC 端用系统默认浏览器打开可以这样
// $message->setSingle('阅读全文', 'https://www.dingtalk.com/', false);

// 这里可以指定机器人,如果不需要指定则默认使用名称为 default 的机器人
$message->setRobot($notifiable->getName());
Expand All @@ -280,6 +308,9 @@ public function toDingTalkRobot($notifiable)
// 添加一个或多个按钮
$message->addButton('内容不错', 'https://www.dingtalk.com/');
$message->addButton('不感兴趣', 'https://www.dingtalk.com/');

// 如果想让链接在 PC 端用系统默认浏览器打开可以这样
// $message->addButton('不感兴趣', 'https://www.dingtalk.com/', false);

// 这里可以指定机器人,如果不需要指定则默认使用名称为 default 的机器人
$message->setRobot($notifiable->getName());
Expand Down Expand Up @@ -308,6 +339,14 @@ public function toDingTalkRobot($notifiable)
'https://mp.weixin.qq.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI',
'https://www.dingtalk.com/'
);

// 如果想让链接在 PC 端用系统默认浏览器打开可以这样
// $message->addLink(
// '时代的火车向前开2',
// 'https://mp.weixin.qq.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI',
// 'https://www.dingtalk.com/',
// false
// );

// 这里可以指定机器人,如果不需要指定则默认使用名称为 default 的机器人
$message->setRobot($notifiable->getName());
Expand Down Expand Up @@ -369,6 +408,7 @@ dingtalk_robot()->setMessage($message)->send();
```

### 直接创建并调用接口

```php
use Calchen\LaravelDingtalkRobot\DingtalkRobot;
use Calchen\LaravelDingtalkRobot\Message\TextMessage;
Expand Down Expand Up @@ -417,7 +457,9 @@ $message->setRobot('机器人名字');

## 鸣谢

感谢 [王举](https://github.com/wowiwj),他的 [wangju/ding-notice](https://github.com/wowiwj/ding-notice) 项目给予了我很多启发。本项目中的部分代码原形来自于该项目。
感谢 [王举](https://github.com/wowiwj),他的 [wangju/ding-notice](https://github.com/wowiwj/ding-notice) 项目给予了我很多启发。本项目中的部分代码原形来自于该项目。

感谢 [aolinver](https://github.com/aolinver),他为本项目实现了部分可以设置链接的消息的链接在 PC 端用系统默认浏览器打开的功能。


## 开源协议
Expand Down
42 changes: 41 additions & 1 deletion README_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,30 @@ public function toDingTalkRobot($notifiable)
'群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警提醒通过自定义机器人聚合到钉钉群。',
'https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Rqyvqo&treeId=257&articleId=105735&docType=1'
);

// 也可以这样写
// $message = new LinkMessage();
// $message->setMessage(
// '自定义机器人协议',
// '群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警提醒通过自定义机器人聚合到钉钉群。',
// 'https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Rqyvqo&treeId=257&articleId=105735&docType=1'
// );

// 如果想让链接在 PC 端用系统默认浏览器打开可以这样
// $message = new LinkMessage(
// '自定义机器人协议',
// '群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警提醒通过自定义机器人聚合到钉钉群。',
// 'https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Rqyvqo&treeId=257&articleId=105735&docType=1',
// false
// );
//
// $message = new LinkMessage();
// $message->setMessage(
// '自定义机器人协议',
// '群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警提醒通过自定义机器人聚合到钉钉群。',
// 'https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Rqyvqo&treeId=257&articleId=105735&docType=1',
// false
// );

// 这里可以指定机器人,如果不需要指定则默认使用名称为 default 的机器人
$message->setRobot($notifiable->getName());
Expand Down Expand Up @@ -261,6 +285,9 @@ public function toDingTalkRobot($notifiable)
"![screenshot](@lADOpwk3K80C0M0FoA) \n #### 乔布斯 20 年前想打造的苹果咖啡厅 \n\n Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划"
);
$message->setSingle('阅读全文', 'https://www.dingtalk.com/');

// 如果想让链接在 PC 端用系统默认浏览器打开可以这样
// $message->setSingle('阅读全文', 'https://www.dingtalk.com/', false);

// 这里可以指定机器人,如果不需要指定则默认使用名称为 default 的机器人
$message->setRobot($notifiable->getName());
Expand All @@ -284,6 +311,9 @@ public function toDingTalkRobot($notifiable)
// 添加一个或多个按钮
$message->addButton('内容不错', 'https://www.dingtalk.com/');
$message->addButton('不感兴趣', 'https://www.dingtalk.com/');

// 如果想让链接在 PC 端用系统默认浏览器打开可以这样
// $message->addButton('不感兴趣', 'https://www.dingtalk.com/', false);

// 这里可以指定机器人,如果不需要指定则默认使用名称为 default 的机器人
$message->setRobot($notifiable->getName());
Expand Down Expand Up @@ -312,6 +342,14 @@ public function toDingTalkRobot($notifiable)
'https://mp.weixin.qq.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI',
'https://www.dingtalk.com/'
);

// 如果想让链接在 PC 端用系统默认浏览器打开可以这样
// $message->addLink(
// '时代的火车向前开2',
// 'https://mp.weixin.qq.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI',
// 'https://www.dingtalk.com/',
// false
// );

// 这里可以指定机器人,如果不需要指定则默认使用名称为 default 的机器人
$message->setRobot($notifiable->getName());
Expand Down Expand Up @@ -422,7 +460,9 @@ $message->setRobot('机器人名字');

## 鸣谢

感谢 [王举](https://github.com/wowiwj),他的 [wangju/ding-notice](https://github.com/wowiwj/ding-notice) 项目给予了我很多启发。本项目中的部分代码原形来自于该项目。
感谢 [王举](https://github.com/wowiwj),他的 [wangju/ding-notice](https://github.com/wowiwj/ding-notice) 项目给予了我很多启发。本项目中的部分代码原形来自于该项目。

感谢 [aolinver](https://github.com/aolinver),他为本项目实现了部分可以设置链接的消息的链接在 PC 端用系统默认浏览器打开的功能。


## 开源协议
Expand Down
15 changes: 11 additions & 4 deletions src/Message/LinkMessage.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,17 @@ class LinkMessage extends Message
* @param string|null $text 消息内容。如果太长只会部分展示
* @param string|null $messageUrl 点击消息跳转的 URL
* @param string $picUrl 图片 URL
* @param bool $pcSlide 链接是否在 PC 端侧栏打开,true 在 PC 端侧栏打开;false 在系统默认浏览器
*/
public function __construct(
string $title = null,
string $text = null,
string $messageUrl = null,
string $picUrl = ''
string $picUrl = '',
bool $pcSlide = true
) {
if (! is_null($title) && ! is_null($text) && ! is_null($messageUrl)) {
$this->setMessage($title, $text, $messageUrl, $picUrl);
$this->setMessage($title, $text, $messageUrl, $picUrl, $pcSlide);
}
}

Expand All @@ -37,8 +39,13 @@ public function __construct(
*
* @return LinkMessage
*/
public function setMessage(string $title, string $text, string $messageUrl, string $picUrl = '', bool $pcSlide = true): self
{
public function setMessage(
string $title,
string $text,
string $messageUrl,
string $picUrl = '',
bool $pcSlide = true
): self {
$this->message = [
'msgtype' => 'link',
'link' => [
Expand Down

0 comments on commit 5dff5e9

Please sign in to comment.