chrisbarr / amazon-sns-php-api
Amazon SNS PHP API
Installs: 228 365
Dependents: 0
Suggesters: 1
Security: 0
Stars: 70
Watchers: 15
Forks: 24
Open Issues: 0
Requires
- php: >=5.2
This package is auto-updated.
Last update: 2024-11-29 04:19:50 UTC
README
This API wrapper is a lightweight alternative to the official Amazon aws-sdk-for-php for access to Amazon SNS (Simple Notification Service) using PHP
Find out more about Amazon SNS here - http://aws.amazon.com/sns
To use this wrapper you must be using PHP5 with cURL, and have an Amazon AWS account
Basic Use
Install using Composer on the command line:
$ composer require chrisbarr/amazon-sns-php-api
Or add it to your composer.json file:
{
...
"require": {
"chrisbarr/amazon-sns-php-api": "~1.0"
}
}
Example usage:
<?php require 'vendor/autoload.php'; // Create an instance $AmazonSNS = new AmazonSNS(AMAZON_ACCESS_KEY_ID, AMAZON_SECRET_ACCESS_KEY); // Create a Topic $topicArn = $AmazonSNS->createTopic('My New SNS Topic'); // Set the Topic's Display Name (required) $AmazonSNS->setTopicAttributes($topicArn, 'DisplayName', 'My SNS Topic Display Name'); // Subscribe to this topic $AmazonSNS->subscribe($topicArn, 'email', 'example@github.com'); // And send a message to subscribers of this topic $AmazonSNS->publish($topicArn, 'Hello, world!');
API Methods
Available methods:
addPermission($topicArn, $label, $permissions)
confirmSubscription($topicArn, $token)
createTopic($name)
deleteTopic($topicArn)
getTopicAttributes($topicArn)
listSubscriptions()
listSubscriptionsByTopic($topicArn)
listTopics()
publish($topicArn, $message, $subject, $messageStructure)
removePermission($topicArn, $label)
setTopicAttributes($topicArn, $attrName, $attrValue)
subscribe($topicArn, $protocol, $endpoint)
unsubscribe($subscriptionArn)
createPlatformEndpoint($platformApplicationArn, $token, $userData)
deleteEndpoint($deviceArn)
publishToEndpoint($deviceArn,$message)
To set the API region (us-east-1, us-west-2, us-west-1, eu-west-1, etc):
setRegion($region)
The default API region is us-east-1
Further Example
Make sure to catch Exceptions where necessary:
<?php require 'vendor/autoload.php'; $AmazonSNS = new AmazonSNS(AMAZON_ACCESS_KEY_ID, AMAZON_SECRET_ACCESS_KEY); $AmazonSNS->setRegion('eu-west-1'); try { $topics = $AmazonSNS->listTopics(); } catch(SNSException $e) { // Amazon SNS returned an error echo 'SNS returned the error "' . $e->getMessage() . '" and code ' . $e->getCode(); } catch(APIException $e) { // Problem with the API echo 'There was an unknown problem with the API, returned code ' . $e->getCode(); }