netglue / sendgrid-webhook
此包已被废弃,不再维护。没有建议的替代包。
用于接收SendGrid发送的Webhooks的ZF2模块
3.0.1
2018-06-27 09:15 UTC
Requires
Requires (Dev)
- phpstan/phpstan: ^0.9.2
- phpunit/phpunit: ^7
- squizlabs/php_codesniffer: ^3.2
- zendframework/zend-crypt: ^2||^3
README
这是一个简单的ZF2应用程序模块,用于接收来自SendGrid的事件Webhooks并触发每个批处理事件的ZF2事件。然后您可以编写自己的监听器来处理弹跳等操作。
安装
使用composer通过"netglue/sendgrid-webhook"
安装,在您的application.config.php
中使用模块名'NetglueSendgrid'
启用模块,并添加自定义配置以更改路由URL或设置基本HTTP认证(推荐)。
测试
将cd
切换到模块安装的任何位置,然后执行composer install
,再执行phpunit
。
设置基本认证
在您的autoload目录中创建一个名为例如sendgrid.local.php
的配置文件,并根据./config/module.config.php
中的说明输入用户名和密码。
设置一个替代Webhook端点/URL
在您喜欢查看路由的配置文件中的某个地方,添加一个新的配置,类似于以下内容
'router' => [
'routes' => [
'sendgrid-webhook' => [
'options' => [
'route' => '/somewhere/this-is-your-endpoint',
]
]
]
]
设置SendGrid
导航到您的SendGrid账户并访问设置 -> 邮件设置部分。点击事件通知项并输入URL。默认情况下,URL应该是类似这样的:https://yourdomain.com/netglue-sendgrid-events
。
实际上,不会有任何操作发生,但您应该开始在您的Web服务器日志中看到一些内容。您需要编写一些监听器来处理触发的事件。
编写一个监听器
例如,在您主应用程序的Module.php
中,您可以设置一个监听器以使用如下方式记录事件
public function onBoostrap(EventInterface $e)
{
// Get a logger instance - change this…
$services = $e->getApplication()->getServiceManager();
$logger = $services->get('TheNameOfMyLogger');
// Listen to all events sent by the EventEmitter
$em = $e->getApplication()->getEventManager();
$sharedEm = $em->getSharedManager();
$sharedEm->attach(
'NetglueSendgrid\Service\EventEmitter',
'*',
function($event) use ($logger) {
$params = $event->getParams();
$logger->debug(sprintf(
'Send Grid Event "%s" was triggered with the event name %s',
$params['data']['event'],
$event->getName()
));
}
);
}
变更日志
1.0.0
首次发布