net-tools/aws-ses-gui-notifications

Composer库,用于查询AWS SES通知(SQS队列)

1.0.11 2023-11-01 10:04 UTC

This package is auto-updated.

Last update: 2024-08-30 01:27:00 UTC


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___