deyan-ardi / ganadev-notif
Laravel Ganadev 通知服务是一个用于帮助加速您开发的应用程序与 Ganadev 通知发送 API 集成过程的 Laravel 扩展包。此扩展包包含便于使用的函数,真正有助于您的工作流程
Requires
- php: ^7.3|7.4|^8.0|^8.1|^8.2
README
什么是 Ganadev 通知发送 API?
Ganadev 通知发送是由 GanaDev Com 开发的 API,旨在简化并支持快速发送通知的过程,而不会干扰主应用程序。此 API 开发中使用的概念是微服务,您的应用程序通过我们的 API 发送通知请求,我们将帮助将其发送到您的用户。使用此概念,您的应用程序将比通常有更快的执行时间。Ganadev 通知发送目前仅支持通过电子邮件和 WhatsApp 发送通知。
- GanaDev Com API 通知 v3 URL => https://sv1.wa-api.ganadev.com/home
什么是 Laravel Ganadev 通知服务包?
Laravel Ganadev 通知服务是一个用于帮助加速您开发的应用程序与 Ganadev 通知发送 API 集成过程的 Laravel 扩展包。此扩展包包含便于使用的函数,真正有助于您的工作流程,因此您无需再手动完成
支持版本
系统要求
- PHP 版本 "^7.3|7.4|^8.0|^8.1|^8.2"
- Guzzle HTTP (默认由 Laravel 提供,如果您的 Laravel 中没有,请安装)
安装
- 打开终端,运行此命令
composer require deyan-ardi/ganadev-notif
- 成功后,运行此命令以发布配置文件
ganadevnotif.php
到 Laravel 的配置文件夹
php artisan vendor:publish --provider="DeyanArdi\GanadevNotif\GanadevServiceProvider" --tag="config"
- 在项目
.env
文件中添加此密钥
GANADEV_REPLACE_STATUS=true GANADEV_NOTIF_DEVICE="<YOUR-DEVICE-SELECTED>" GANADEV_NOTIF_TOKEN="<YOUR-API-TOKEN>"
如何获取 API 密钥
- 请通过此网址联系 GanaDev Com https://ganadev.com/kontak。当您的请求批准后,您将获得 GanaDev Com 通知 API v3 的账户以登录(https://sv1.wa-api.ganadev.com/home)
- 在右上角选择设置菜单
- 在 API Key 列表中是您的 API 密钥,将其复制到您的 .env 作为 GANADEV_NOTIF_TOKEN
如何注册设备
- 点击仪表板菜单
- 选择添加设备并填写所有必填表单。
- 通过在 WhatsApp 中使用链接设备功能将您的设备连接到 WhatsApp
- 默认情况下,WA 通知状态和电子邮件通知状态为激活,如果禁用,则无法使用 WhatsApp API 或电子邮件 API
- 将设备的号码复制到您的 .env 作为 GANADEV_NOTIF_DEVICE 配置
如何使用
与 Laravel 邮件集成
要将此包与 Laravel 邮件集成,首先您必须在 config/mail.php
中添加新的邮件方法
'mailers' => [ // .... 'ganadev' => [ 'transport' => 'smtp', 'host' => env('GANADEV_MAIL_HOST'), 'port' => env('GANADEV_MAIL_PORT'), 'encryption' => env('GANADEV_MAIL_ENCRYPTION'), 'username' => env('GANADEV_MAIL_USERNAME'), 'password' => env('GANADEV_MAIL_PASSWORD'), 'timeout' => null, 'local_domain' => env('GANADEV_MAIL_EHLO_DOMAIN'), ], // .... ]
之后,将默认的 MAIL_MAILER 设置为 ganadev
并在 .env 文件中将 GANADEV_REPLACE_STATUS 设置为 true
MAIL_MAILER=ganadev GANADEV_REPLACE_STATUS=true
这样,每次您使用 Laravel Mailer 发送电子邮件时,使用的电子邮件配置就是 Ganadev 通知发送 API 服务器上的配置。之后,如果您更改了电子邮件配置,只需在 Ganadev 通知发送 API 服务器(https://sv1.wa-api.ganadev.com/home)上更改它即可,这样使用设备账户的所有您的应用程序也会被更新。另一个优点是,您再也不必担心您的电子邮件配置会被其他人知道,因为您的电子邮件配置与应用程序分离。
最后,如果您启用此功能,默认情况下,此软件包将每15分钟自动向 Ganadev 通知发送 API 服务器发送请求。这意味着,如果您后来在 Ganadev 通知发送 API 服务器上更改了设备账户。更改将在15分钟后生效。您可以在 config/ganadevnotif.php
文件中的 idle_time
配置中更改配置。我们提供了默认选项,即每15分钟、30分钟或60分钟请求一次。
与 Laravel 队列集成
默认情况下,此软件包使用您应用程序队列设置中使用的 Laravel 队列方法向 API 服务器发送请求。您可以通过在 config/ganadevnotif.php
中将 must_queue
设置为 false 来禁用它。
如果您想手动使用作业运行特定的 API 功能,可以使用以下命令发布作业文件:
php artisan vendor:publish --provider="DeyanArdi\GanadevNotif\GanadevServiceProvider" --tag="jobs"
现在所有作业都将发布到作业文件夹,您可以使用 Laravel 队列方法调用它。请阅读 Laravel 队列的文档,链接为 https://laravel.net.cn。
仅发送邮件消息
您可以使用名为 sendMailMessage
的方法发送电子邮件消息(不带图片),此方法需要三个参数 send_to
、subject
和 message
。示例用法
use DeyanArdi\GanadevNotif\GanadevApi; public function sendingMessageText(){ $send_to = "yourtargetemail@gmail.com"; $subject = "Test Subject"; // Using Text Message $message = "Text Message" GanadevApi::sendMailMessage($send_to, $subject, $message) } public function sendingWithCustomView(){ $send_to = "yourtargetemail@gmail.com"; $subject = "Test Subject"; // Using Laravel Views $message = view('emails.exampleNotification', compact('subject','send_to'))->render(); // Your custom view with render method GanadevApi::sendMailMessage($send_to, $subject, $message) }
发送邮件媒体(带图片或其他媒体)
您可以使用名为 sendMailMedia
的方法发送带图片或其他媒体的电子邮件消息,此方法需要六个参数 send_to
、subject
、message
、filename
、link
和 mime_type
。有关 mime_type 列表,请在此处查看 https://mdn.org.cn/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types 示例用法
use DeyanArdi\GanadevNotif\GanadevApi; public function sendingMessageText(){ $send_to = "yourtargetemail@gmail.com"; $subject = "Test Subject"; $filename = "test.jpg"; // Filename must with file extension, support all document (docx, doc, xls, xlsx, video, audio, image, pdf dan zip) $link = "https://[yourdomain]/images/test.jpg"; //File must be upload on server, cant support localhost $mime_type ="image/jpeg"; // Using Text Message $message = "Text Message" GanadevApi::sendMailMedia($send_to, $subject, $message, $filename, $link, $mime_type); } public function sendingWithCustomView(){ $send_to = "yourtargetemail@gmail.com"; $subject = "Test Subject"; $filename = "test.jpg"; // Filename must with file extension, support all document (docx, doc, xls, xlsx, video, audio, image, pdf dan zip) $link = "https://[yourdomain]/images/test.jpg"; //File must be upload on server, cant support localhost $mime_type ="image/jpeg"; // Using Laravel Views $message = view('emails.exampleNotification', compact('subject','send_to'))->render(); // Your custom view with render method GanadevApi::sendMailMedia($send_to, $subject, $message, $filename, $link, $mime_type) }
仅发送 WhatsApp 消息
您可以使用名为 sendWaMessage
的方法发送 WhatsApp 消息(不带图片),此方法需要两个参数 send_to
和 message
。示例用法
use DeyanArdi\GanadevNotif\GanadevApi; public function yourExampleFunction(){ $send_to = "6281915003004" // Must include country code $message = "Text Message" GanadevApi::sendWaMessage($send_to, $message) }
发送 WhatsApp 媒体(带图片或其他媒体)
您可以使用名为 sendWaMedia
的方法发送带图片或其他媒体的 WhatsApp 媒体,此方法需要四个参数 send_to
、link
、type
和 message
。示例用法
use DeyanArdi\GanadevNotif\GanadevApi; public function sendingImageVideo(){ $send_to = "6281915003004" // Must include country code $type = "image" // please choose one type [image,video,audio,pdf,xls,xlsx,doc,docx,zip] $link = "https://[yourdomain]/images/test.jpg"; // If you choose type "image" or "video", you can add caption for message $caption = "Text Message" GanadevApi::sendWaMedia($send_to, $link, $type, $caption) } public function sendingAudio(){ $send_to = "6281915003004" // Must include country code $type = "image" // please choose one type [image,video,audio,pdf,xls,xlsx,doc,docx,zip] $link = "https://[yourdomain]/images/test.jpg"; $ppt = true; // If you choose type "audio, you can add ppt configuration, the value is true = voice note | false = audio GanadevApi::sendWaMedia($send_to, $link, $type, $ppt) } public function sendingOtherMedia(){ $send_to = "6281915003004" // Must include country code $type = "image" // please choose one type [image,video,audio,pdf,xls,xlsx,doc,docx,zip] $link = "https://[yourdomain]/images/test.jpg"; // If you choose "pdf","xls","xlsx","doc","docx","zip", you can follow this GanadevApi::sendWaMedia($send_to, $link, $type) }
获取“设备账户”信息
“设备账户”一词表示包含您的电子邮件和 WhatsApp 数据的配置。您可以通过使用 getDevice
方法获取您使用的设备的详细信息,此方法不需要参数。示例用法
use DeyanArdi\GanadevNotif\GanadevApi; public function yourExampleFunction(){ GanadevApi::getDevice() // This method return detail of your device using in app, this request using api token and device id to get }
响应结构
默认情况下,方法的响应是 json 响应
,您可以在 config/ganadevnotif.php
中将其更改为 array
。以下是方法的示例响应结构
{ "status":200, "message":"<MESSAGE API RESPONSE HERE>" "data":"<DATA GET FROM SERVER API>" }
贡献
版本
- v3.0.1
许可证
Laravel Ganadev 通知服务软件包是开源软件,许可协议为 MIT 许可证。