Amazon SNS подтолкнет тему с помощью PHP - PullRequest
5 голосов
/ 14 марта 2012

Я пытаюсь понять amazon php sdk для AWS, но я действительно не могу его использовать. Я нахожу некоторые базовые классы для создания, отображения и продвижения темы, но я тоже не работаю. Я просто хочу найти способ (самый простой способ) выдвинуть тему с моего сайта.

Ответы [ 3 ]

18 голосов
/ 25 марта 2012

Прежде всего, чтобы ознакомиться с Amazon Simple Notification Service (SNS) , я рекомендую выполнить все необходимые действия вручную один раз через AWS Management Console , как описано в Руководство по началу работы , т.е. Создать тему , Подписаться на эту тему и Опубликовать в ней сообщение .

После этого должно быть достаточно просто выполнить примеры фрагментов, приведенные в документации по AWS SDK для PHP , см., Например, метод publish () в классе AmazonSNS:

$sns = new AmazonSNS();

// Get topic attributes
$response = $sns->publish(
    'arn:aws:sns:us-east-1:9876543210:example-topic',
    'This is my very first message to the world!',
    array(
        'Subject' => 'Hello world!'
    )
);

// Success?
var_dump($response->isOK());

Для более полного примера вы можете проверить пример, приведенный в Отправка сообщений с использованием SNS [...] .

Если ничего из этого не получится, вам придется предоставить более подробную информацию о конкретных проблемах, с которыми вы сталкиваетесь, в соответствии с запросом tster .

Удачи!

4 голосов
/ 01 июля 2016

Как вам сообщил @SteffenOpel, вам следует один раз попытаться выполнить все необходимые шаги вручную один раз через Консоль управления AWS.

Затем вы можете использовать AWS SDK для PHP (v3) as below до , создать клиента SNS (или заразить клиента любой службы, конечно, с некоторыми изменениями), а затем создать тему SNS .

<?php
    //assuming that use have downloaded the zip file for php sdk
    require 'C:/wamp/www/aws sdk/aws-autoloader.php'; //Change the path according to you
    use Aws\Sns\SnsClient;



    try{
            /*-------------METHOD 1----------------*/
            // Create a new Amazon SNS client using AWS v3
            //$sns = new Aws\Sns\SnsClient([
            $sns = new SnsClient([

                'region' => 'us-west-2', //Change according to you
                'version' => '2010-03-31', //Change according to you
                'credentials' => [
                    'key'    => '<Your root AWS Key',
                    'secret' => '<Your root AWS Secret>',
                ],
                'scheme' => 'http', //disables SSL certification, there was an error on enabling it 

            ]);

            $result = $sns -> createTopic([
            'Name' => '<Your Topic>',
            ]);


        /*-------------METHOD 2----------------*/
        /*
        // Create a new Amazon SNS client using AWS v2
        $sns = SnsClient::factory(array(

            'region' => 'us-west-2',
            'version' => '2010-03-31',
            'credentials' => [
                'key'    => '<Your root AWS Key',
                'secret' => '<Your root AWS Secret>',
            ],
            'scheme' => 'http',
        ));


        $result = $sns -> createTopic([
            'Name' => '<Your Topic>',
            ]);

        */



        /*-------------METHOD 3----------------*/
        /*
        // Create a new Amazon SNS client using AWS SDK class
        // Use the us-west-2 region and latest version of each client.
        $sharedConfig = [
            'region'  => 'us-west-2',
            'version' => '2010-03-31',

            'credentials' => [
                'key'    => '<Your root AWS Key',
                'secret' => '<Your root AWS Secret>',
            ],
            //'ssl.certificate_authority' => '/path/to/updated/cacert.pem',
            'scheme' => 'http',
        ];

        // Create an SDK class used to share configuration across clients.
        $sdk = new Aws\Sdk($sharedConfig);

        $sns =  $sdk -> createSns();

        $result = $sns -> createTopic([
            'Name' => '<Your Topic>',
            ]);
        */


        if ($result)
            echo "Yes";
        else
            echo "No";
    }

    catch(Exception $e){

        echo 'Caught Exception: ', $e->getMessage(), "\n";

    }


?>

ПРИМЕЧАНИЕ. Этот код иллюстрирует создание клиента для SNS тремя различными способами. Вы можете раскомментировать и использовать его по своему усмотрению. Метод 1 (версия 3) является лучшим, если вы создаете один клиент, в противном случае используйте метод 3. Метод 2 скоро обесценится (как и его версия 2)

1 голос
/ 25 марта 2012

Мне удалось сделать это с помощью этих классов-> Amazon-SNS-client-for-PHP

Очень хорошо, просто в использовании и просто отлично работает.

...