net-tools / aws-ses-gui-notifications
Composer库,用于查询AWS SES通知(SQS队列)
1.0.11
2023-11-01 10:04 UTC
Requires
- php: >= 8.1.0
- aws/aws-sdk-php: ^3.0.0
README
PHP和JavaScript接口,用于查询AWS SES通知
使用AWS SES时,可以将退回和投递反馈设置为通过SNS主题发布。当SQS队列订阅了SNS主题时,它将包含在SES 发送操作期间创建的任何退回或投递消息。
此库抽象了大部分AWS API相关内容,并处理GUI输出。
如何使用
客户端JavaScript
首先,将javascript api.js.min
文件包含在网页中。
然后,创建API对象并执行请求,提供所需参数
nodeId
是一个字符串,设置为DOM树元素的id
值;此元素将包含输出type
是一个字符串,设置我们要获取的SES数据的类型:投递或退回cssClass
可以设置任何CSS类名,使得可以自定义输出表格的样式
// creating API object var req = new nettools.awsSesGuiNotifications(nodeId, type, cssClass); // execute request and update GUI req.update( // callback that must return a Promise object resolved with SQS data (see server-side remark below) function() { return fetch('/path/to/a/script.php', { method : 'POST' }) .then(function(response){ return response.json(); }); }, // updates count (see remark below) 5 );
备注
- SQS队列可能不会在单个API调用中返回所有消息;因此,有必要执行多个请求以确保获得所有数据。
- 创建一个服务器端PHP文件,该文件将通过我们的库执行AWS API调用,并将消息返回给JavaScript类。
服务器端PHP
服务器端PHP文件(如上所述,为/path/to/a/script.php
)必须调用我们的API以发送请求到AWS SQS
// creating Request object $rq = new \Nettools\AwsSesGuiNotifications\Request(\Aws\Credentials\CredentialProvider::ini('default', '/path/to/aws/credentials'), $region); // perform API call ; set $url_of_sqs_queue with the correct URL of the SQS queue to be queried $ret = $rq->execute($url_of_sqs_queue); // answer with json data header("Content-Type: application/json; charset=utf-8"); echo json_encode($ret);
请注意,CredentialProvider::ini
调用必须定义一个指向凭证文件的路径,并且$region
必须是一个字符串,设置正确的AWS区域。
凭证文件必须包含以下行,以及您的密钥和密钥
[default]
aws_access_key_id = ___key_here___
aws_secret_access_key = ___secret_here___