netglue/sendgrid-webhook

此包已被废弃,不再维护。没有建议的替代包。

用于接收SendGrid发送的Webhooks的ZF2模块

安装: 196

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:模块

3.0.1 2018-06-27 09:15 UTC

This package is auto-updated.

Last update: 2020-03-30 12:47:54 UTC


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

首次发布