namespace App\Notifications;
use Calchen\LaravelDingtalkRobot\DingtalkRobotChannel;
use Calchen\LaravelDingtalkRobot\Message\Message;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
class TestDingtalkNotification extends Notification
{
// 注意这里如果不需要异步可不使用 Queueable Trait
use Queueable;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct()
{
//
}
public function via($notifiable)
{
// 这里的 channel 必须包含 DingtalkRobotChannel 才能正常的发送消息
return [DingtalkRobotChannel::class];
}
public function toDingTalkRobot($notifiable)
{
/**
* $message 根据消息类型的不同由 Calchen\LaravelDingtalkRobot\Message\Message 的各个子类创建
*
* @var Message $message
*/
$message = ...;
return $message;
}
}
use Calchen\LaravelDingtalkRobot\Robot;
(new Robot)->notify(new TestDingtalkNotification());
\Notification::send(new Robot, new TestDingtalkNotification());
use Calchen\LaravelDingtalkRobot\Message\TextMessage;
public function toDingTalkRobot($notifiable)
{
$message = new TextMessage('我就是我, @1825718XXXX 是不一样的烟火');
// 可@某人或某些人
$message->at('1825718XXXX');
// $message->at(['1825718XXXX', '1825718XXXY']);
// 可@全部人
// $message->atAll();
// 可通过 setConnection 设置向指定的机器人发送消息,如果不指定则为默认机器人
$message->setConnection('robot_dev');
return $message;
}
use Calchen\LaravelDingtalkRobot\Message\LinkMessage;
public function toDingTalkRobot($notifiable)
{
$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');
return $message;
}
use Calchen\LaravelDingtalkRobot\Message\MarkdownMessage;
public function toDingTalkRobot($notifiable)
{
$message = new MarkdownMessage('杭州天气', "#### 杭州天气 \n > 9度,@1825718XXXX 西北风1级,空气良89,相对温度73%\n\n > \n > ###### 10点20分发布 [天气](http://www.thinkpage.cn/) ");
// 可@某人或某些人
$message->at('1825718XXXX');
// $message->at(['1825718XXXX', '1825718XXXY']);
// 可@全部人
// $message->atAll();
return $message;
}
use Calchen\LaravelDingtalkRobot\Message\ActionCardMessage;
public function toDingTalkRobot($notifiable)
{
$message = new ActionCardMessage('乔布斯 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身', " \n #### 乔布斯 20 年前想打造的苹果咖啡厅 \n\n Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划");
$message->setSingle('阅读全文', 'https://www.dingtalk.com/');
return $message;
}
use Calchen\LaravelDingtalkRobot\Message\ActionCardMessage;
public function toDingTalkRobot($notifiable)
{
$message = new ActionCardMessage('乔布斯 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身', " \n #### 乔布斯 20 年前想打造的苹果咖啡厅 \n\n Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划");
// 添加一个或多个按钮
$message->addButton('内容不错', 'https://www.dingtalk.com/');
$message->addButton('不感兴趣', 'https://www.dingtalk.com/');
return $message;
}
use Calchen\LaravelDingtalkRobot\Message\FeedCardMessage;
public function toDingTalkRobot($notifiable)
{
$message = new FeedCardMessage();
// 添加一个或多个链接
$message->addLink('时代的火车向前开', '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/');
$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/');
return $message;
}
use Calchen\LaravelDingtalkRobot\Robot;
$notification = new TestDingtalkNotification();
(new Robot('robot_1'))->notify($notification);
(new Robot('robot_2'))->notify($notification);
// TestDingtalkNotification 文件
use Calchen\LaravelDingtalkRobot\Message\TextMessage;
public function toDingTalkRobot($notifiable)
{
$message = new TextMessage('我就是我, @1825718XXXX 是不一样的烟火');
// 可通过 setConnection 设置向指定的机器人发送消息,如果不指定则为默认机器人
$message->setConnection($notifiable->getName());
return $message;
}
use Calchen\LaravelDingtalkRobot\Message\TextMessage;
$message = new TextMessage('我就是我, @1825718XXXX 是不一样的烟火');
dingtalk_robot()->setMessage($message)->send();
use Calchen\LaravelDingtalkRobot\DingtalkRobot;
use Calchen\LaravelDingtalkRobot\Message\TextMessage;
$message = new TextMessage('我就是我, @1825718XXXX 是不一样的烟火');
app(DingtalkRobot::class)->setMessage($message)->send();
use Calchen\LaravelDingtalkRobot\DingtalkRobot;
use Calchen\LaravelDingtalkRobot\Message\TextMessage;
$message = new TextMessage('我就是我, @1825718XXXX 是不一样的烟火');
(new DingtalkRobot)->setMessage($message)->send();