這是一個laravel框架下基於laravel-wechat使用微信訊息通知作為notification通道的composer包,使用前請先熟讀laravel-訊息通知
目前已支援:
- 公眾號模板訊息
- 小程式模板訊息
- 開放平臺公眾號模板訊息
- 開放平臺小程式模板訊息
- 企業微信訊息
- 企業微信開放平臺訊息
使用方式:
0. 新增composer包:
composer require "huo-zi/laravel-wechat-notification"
1. 在繼承了notification
的通知類中可以使用如下方法:
- 設定傳送指定頻道:
public function via($notifiable)
{
/*
* 支援的via列表
* official_account:公眾號
* mini_program:小程式
* open_official_account:開放平臺公眾號
* open_mini_program:開放平臺小程式
* work:企業微信
* open_work:開放平臺企業微信
*/
return ['official_account', 'mini_program'];
}
- 使用公眾號傳送模板訊息:
public function toOfficialAccount()
{
return WechatMessage::officialAccount('app_name')->template('templateId')->url($url)->data(['fisrt'=>'...']);
}
- 使用小程式傳送模板訊息:
public function toMiniProgram()
{
return WechatMessage::miniProgram('app_name')->template($templateId)->formId($formId)->data([
'first' => ''
//
]);
}
- 使用開放平臺公眾號傳送模板訊息:
public function toOpenOfficialAccount()
{
return WechatMessage::openFlatform($name)->officateAccount($appId, $refreshToken, $accessToken)->template('templateId');
}
// 或使用閉包建立開放平臺的公眾號物件
public function toOpenOfficialAccount()
{
return WechatMessage::openFlatform($name)->officateAccount(function ($open) {
return $open->officateAccount($appId, $refreshToken, $accessToken);
})->template('templateId');
}
// 或建立好開放平臺物件後使用
public function toOpenOfficialAccount()
{
return (new WechatPlatform($openPlatform))->officateAccount($appId, $refreshToken, $accessToken)->template($templateId);
}
- 使用開放平臺小程式傳送模板訊息:
public function toOpenMiniProgram()
{
return WechatMessage::openFlatform($name)->miniProgram($appId, $refreshToken, $accessToken)->template($templateId);
}
- 使用企業微信傳送訊息:
public function toWork()
{
return WechatMessage::work($name)->message($message)->ofAgent($agentId);
}
- 使用開放平臺企業微信傳送訊息:
public function toOpenWork()
{
return WechatMessage::openWork($name)->work($authCorpId, $permanentCode)->message($message)->ofAgent($agentId);
// 同樣也支援建立好開放平臺物件後使用及閉包建立work物件
$messenger = (new WechatOpenWork($openWork))->work(function($openWork) {
return $openWork->work($authCorpId, $permanentCode);
});
return $messenger->message($message)->ofAgent($agentid);
}
2. 在使用了triat
Notifiable
的模型裡增加獲取對應openid/userid
的方法:
可以參考官方文件裡傳送郵件通知時自定義收件人
- 獲取公眾號
openid
public function routeNotificationForOfficialAccount($notification)
{
// 返回當前model的公眾號openid
return $this->openid;
}
- 獲取小程式
openid
public function routeNotificationForMiniProgram($notification)
{
// 返回當前model的小程式openid
}
- 獲取開放平臺公眾號
openid
public function routeNotificationForOpenOfficialAccount($notification)
{
// 返回對應開放平臺公眾號使用者的openid
}
- 獲取開放平臺小程式
openid
public function routeNotificationForOpenMiniProgram($notification)
{
// 返回對應開放平臺小程式使用者的openid
}
- 獲取企業微信
userid
public function routeNotificationForWork($notification)
{
// 返回當前model的企業微信userid
return ;
}
- 獲取開放平臺企業微信
userid
public function routeNotificationForOpenWork($notification)
{
// 返回對應開放平臺企業使用者userid
return ;
}
3. 可參考官方文件:傳送通知
使用Notifiable
特性的notify
方法可以給使用者例項傳送通知:
use App\Notifications\WorkNotify;
$user->notify(new WorkNotify(new Text('你好啊~')));
使用Notification
facade 給多個可接收通知的實體傳送通知
Notification::send($users, new WorkNotify(new Markdown('#你好啊~')));
License
Licensed under The MIT License (MIT).
Git地址: laravel-wechat-notification
如果對您有幫助,勞煩點個Start謝謝.
本作品採用《CC 協議》,轉載必須註明作者和本文連結