public void SubscribeToTopic() { SubscribeRequest request = new SubscribeRequest { TopicArn = "arn:aws:sns:us-west-1:491483104165:TopicApp", Protocol = "email", Endpoint = "*****@*****.**" }; var response = client.Subscribe(request); if (response.HttpStatusCode.IsSuccess()) { Console.WriteLine($"Subscribe Created Successfullt! \nARN: {response.SubscriptionArn}"); } }
/// <summary> /// Utility method for creating at topic and subscribe the email address to it. /// </summary> /// <param name="emailAddress"></param> /// <returns></returns> static string CreateTopic(string emailAddress) { var snsClient = new AmazonSimpleNotificationServiceClient(); var topicArn = snsClient.CreateTopic(new CreateTopicRequest { Name = "TranscodeEvents" + UNIQUE_POSTFIX }).TopicArn; snsClient.Subscribe(new SubscribeRequest { TopicArn = topicArn, Protocol = "email", Endpoint = emailAddress }); return(topicArn); }
public void SubscribeToTopic() { SubscribeRequest request = new SubscribeRequest { TopicArn = TopicARN, Protocol = "email", Endpoint = ConfigurationManager.AppSettings["testEmail"] }; var response = client.Subscribe(request); if (response.HttpStatusCode.IsSuccess()) { Console.WriteLine("Subscribe Created Successfully"); Console.WriteLine(response.SubscriptionArn); Console.WriteLine(request.ReturnSubscriptionArn); } }
public void SubscribeToTopic() { SubscribeRequest request = new SubscribeRequest { TopicArn = "arn:aws:sns:eu-west-1:109720996851:myAppTopicName", Protocol = "email", Endpoint = "*****@*****.**" }; var response = client.Subscribe(request); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { Console.WriteLine("Subscribe Successfully"); Console.WriteLine(response.SubscriptionArn); Console.WriteLine(request.ReturnSubscriptionArn); } Console.ReadLine(); }
private static void SubscribeToGateChangeTopic(string phoneNum, AmazonSimpleNotificationServiceClient client, string ARN) { SubscribeRequest subscribeRequest = new SubscribeRequest { TopicArn = ARN, Protocol = "sms", Endpoint = phoneNum }; try { SubscribeResponse subscribeResponse = client.Subscribe(subscribeRequest); Console.WriteLine("You will be notified of any flight changes."); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public static void Main(string[] args) { Console.WriteLine("Definitely don't press the ENTER key!"); Console.ReadKey(); var sns = new AmazonSimpleNotificationServiceClient(); var sub = new SubscribeRequest(); sub.Protocol = "SMS"; sub.Endpoint = "1-973-459-9920"; sub.Endpoint = "1-843-259-9433"; sub.Endpoint = "1-978-408-9992"; sub.TopicArn = "arn:aws:sns:us-east-1:946008981535:Crazy-ex-girlfriend"; Console.WriteLine("Count:"); for (int i = 0; i < 20; i++) { try { Console.Write("\r{0} ", i + 1); sns.Subscribe(sub); /* * var pub = new PublishRequest(); * pub.Message = "Hey Verrelli"; * pub.TopicArn = "arn:aws:sns:us-east-1:946008981535:SigEp-Messages"; * sns.Publish(pub); * */ } catch (Exception ex) { Console.WriteLine(ex.Message); } //System.Threading.Thread.Sleep(5000); } Console.WriteLine(""); Console.WriteLine("Messages Sent"); Console.Write("Press any key to exit..."); Console.ReadKey(); }
private static Topic SetupTopicAndSubscriptions(string topicFileName, string outputDirectory, string regionSystemName, string archiveId = null, string filename = null) { var topic = new Topic { TopicFileName = topicFileName, OutputDirectory = outputDirectory, ArchiveId = archiveId, FileName = filename, DateRequested = DateTime.Now }; long ticks = DateTime.Now.Ticks; var settings = SettingsManager.GetSettings(); #region Setup SNS topic var snsClient = new AmazonSimpleNotificationServiceClient( settings.AWSAccessKeyID, settings.AWSSecretAccessKey, RegionEndpoint.GetBySystemName(regionSystemName)); var sqsClient = new AmazonSQSClient( settings.AWSAccessKeyID, settings.AWSSecretAccessKey, RegionEndpoint.GetBySystemName(regionSystemName)); var topicArn = snsClient.CreateTopic(new CreateTopicRequest { Name = "GlacierDownload-" + ticks }).TopicArn; //Debug.WriteLine($"topicArn: {topicArn}"); topic.TopicARN = topicArn; #endregion #region Setup SQS queue var createQueueRequest = new CreateQueueRequest { QueueName = "GlacierDownload-" + ticks }; var createQueueResponse = sqsClient.CreateQueue(createQueueRequest); var queueUrl = createQueueResponse.QueueUrl; //Debug.WriteLine($"QueueURL: {queueUrl}"); topic.QueueUrl = queueUrl; var getQueueAttributesRequest = new GetQueueAttributesRequest { AttributeNames = new List <string> { "QueueArn" }, QueueUrl = queueUrl }; var response = sqsClient.GetQueueAttributes(getQueueAttributesRequest); var queueArn = response.QueueARN; Debug.WriteLine($"QueueArn: {queueArn}"); topic.QueueARN = queueArn; #endregion // Setup the Amazon SNS topic to publish to the SQS queue. // TODO SMS subscription snsClient.Subscribe(new SubscribeRequest() { Protocol = "sqs", Endpoint = queueArn, TopicArn = topicArn }); // Add the policy to the queue so SNS can send messages to the queue. var policy = SQS_POLICY.Replace("{TopicArn}", topicArn).Replace("{QuernArn}", queueArn); sqsClient.SetQueueAttributes(new SetQueueAttributesRequest { QueueUrl = queueUrl, Attributes = new Dictionary <string, string> { { QueueAttributeName.Policy, policy } } }); return(topic); }
static void Main(string[] args) { var sns = new AmazonSimpleNotificationServiceClient(); string httpAddress = "http://34.217.101.161:3018/redisServer"; try { // Create topic Console.WriteLine("Creating topic..."); var topicArn = sns.CreateTopic(new CreateTopicRequest { Name = "SampleSNSTopic" }).TopicArn; // Set display name to a friendly value Console.WriteLine(); Console.WriteLine("Setting topic attributes..."); sns.SetTopicAttributes(new SetTopicAttributesRequest { TopicArn = topicArn, AttributeName = "DisplayName", AttributeValue = "Sample Notifications" }); // Subscribe an endpoint - in this case, an email address Console.WriteLine(); Console.WriteLine("Subscribing http address {0} to topic...", httpAddress); sns.Subscribe(new SubscribeRequest { TopicArn = topicArn, Protocol = "http", Endpoint = httpAddress }); // When using http, recipient must confirm subscription Console.WriteLine(); Console.WriteLine("Please check your http endpoint and press enter when you are subscribed..."); Console.ReadLine(); // Publish message Console.WriteLine(); _ = DespatchAsync(@"[ '967813618981', 'BPNYDCFEE-6592', '2/2/2018 20:59:00', 'Ops Hold', '2018-02-02T20:59:38', 'Hold', 'Hold', '', '', '' ]", topicArn); _ = DespatchAsync(@"[ '967813618981', 'BPNYDCFEE-6592', '2/2/2018 20:59:00', 'Ops Hold', '2018-02-02T20:59:38', 'Hold', 'Hold', '', '', '' ]", topicArn); // Verify http endpoint receieved Console.WriteLine(); Console.WriteLine("Please check your http endpoint and press enter when you receive the message..."); Console.ReadLine(); // Delete topic Console.WriteLine(); Console.WriteLine("Deleting topic..."); sns.DeleteTopic(new DeleteTopicRequest { TopicArn = topicArn }); } catch (AmazonSimpleNotificationServiceException ex) { Console.WriteLine("Caught Exception: " + ex.Message); Console.WriteLine("Response Status Code: " + ex.StatusCode); Console.WriteLine("Error Code: " + ex.ErrorCode); Console.WriteLine("Error Type: " + ex.ErrorType); Console.WriteLine("Request ID: " + ex.RequestId); } Console.WriteLine(); Console.WriteLine("Press enter to exit..."); Console.ReadLine(); }
public static void SNSCreateSubscribePublish() { #region SNSCreateSubscribePublish var snsClient = new AmazonSimpleNotificationServiceClient(); var topicRequest = new CreateTopicRequest { Name = "CodingTestResults" }; var topicResponse = snsClient.CreateTopic(topicRequest); var topicAttrRequest = new SetTopicAttributesRequest { TopicArn = topicResponse.TopicArn, AttributeName = "DisplayName", AttributeValue = "Coding Test Results" }; snsClient.SetTopicAttributes(topicAttrRequest); snsClient.Subscribe(new SubscribeRequest { Endpoint = "*****@*****.**", Protocol = "email", TopicArn = topicResponse.TopicArn }); // Wait for up to 2 minutes for the user to confirm the subscription. DateTime latest = DateTime.Now + TimeSpan.FromMinutes(2); while (DateTime.Now < latest) { var subsRequest = new ListSubscriptionsByTopicRequest { TopicArn = topicResponse.TopicArn }; var subs = snsClient.ListSubscriptionsByTopic(subsRequest).Subscriptions; var sub = subs[0]; if (!string.Equals(sub.SubscriptionArn, "PendingConfirmation", StringComparison.Ordinal)) { break; } // Wait 15 seconds before trying again. System.Threading.Thread.Sleep(TimeSpan.FromSeconds(15)); } snsClient.Publish(new PublishRequest { Subject = "Coding Test Results for " + DateTime.Today.ToShortDateString(), Message = "All of today's coding tests passed.", TopicArn = topicResponse.TopicArn }); #endregion }
public static void Main(string[] args) { var sns = new AmazonSimpleNotificationServiceClient(); string emailAddress = string.Empty; while (string.IsNullOrEmpty(emailAddress)) { Console.Write("Please enter an email address to use: "); emailAddress = Console.ReadLine(); } try { // Create topic Console.WriteLine("Creating topic..."); var topicArn = sns.CreateTopic(new CreateTopicRequest { Name = "SampleSNSTopic" }).TopicArn; // Set display name to a friendly value Console.WriteLine(); Console.WriteLine("Setting topic attributes..."); sns.SetTopicAttributes(new SetTopicAttributesRequest { TopicArn = topicArn, AttributeName = "DisplayName", AttributeValue = "Sample Notifications" }); // List all topics Console.WriteLine(); Console.WriteLine("Retrieving all topics..."); var listTopicsRequest = new ListTopicsRequest(); ListTopicsResponse listTopicsResponse; do { listTopicsResponse = sns.ListTopics(listTopicsRequest); foreach (var topic in listTopicsResponse.Topics) { Console.WriteLine(" Topic: {0}", topic.TopicArn); // Get topic attributes var topicAttributes = sns.GetTopicAttributes(new GetTopicAttributesRequest { TopicArn = topic.TopicArn }).Attributes; if (topicAttributes.Count > 0) { Console.WriteLine(" Topic attributes"); foreach (var topicAttribute in topicAttributes) { Console.WriteLine(" -{0} : {1}", topicAttribute.Key, topicAttribute.Value); } } Console.WriteLine(); } listTopicsRequest.NextToken = listTopicsResponse.NextToken; } while (listTopicsResponse.NextToken != null); // Subscribe an endpoint - in this case, an email address Console.WriteLine(); Console.WriteLine("Subscribing email address {0} to topic...", emailAddress); sns.Subscribe(new SubscribeRequest { TopicArn = topicArn, Protocol = "email", Endpoint = emailAddress }); // When using email, recipient must confirm subscription Console.WriteLine(); Console.WriteLine("Please check your email and press enter when you are subscribed..."); Console.ReadLine(); // Publish message Console.WriteLine(); Console.WriteLine("Publishing message to topic..."); sns.Publish(new PublishRequest { Subject = "Test", Message = "Testing testing 1 2 3", TopicArn = topicArn }); // Verify email receieved Console.WriteLine(); Console.WriteLine("Please check your email and press enter when you receive the message..."); Console.ReadLine(); // Delete topic Console.WriteLine(); Console.WriteLine("Deleting topic..."); sns.DeleteTopic(new DeleteTopicRequest { TopicArn = topicArn }); } catch (AmazonSimpleNotificationServiceException ex) { Console.WriteLine("Caught Exception: " + ex.Message); Console.WriteLine("Response Status Code: " + ex.StatusCode); Console.WriteLine("Error Code: " + ex.ErrorCode); Console.WriteLine("Error Type: " + ex.ErrorType); Console.WriteLine("Request ID: " + ex.RequestId); } Console.WriteLine(); Console.WriteLine("Press enter to exit..."); Console.ReadLine(); }
public static void Main(string[] args) { const bool useEasySubscription = false; var sns = new AmazonSimpleNotificationServiceClient(); var sqs = new AmazonSQSClient(); string nameOfNewTopic = args[0]; //Sanitise this to ensure no illegal characters. var emailAddress = args[1]; try { var topicArn = sns.CreateTopic( new CreateTopicRequest { Name = nameOfNewTopic }).TopicArn; sns.SetTopicAttributes(new SetTopicAttributesRequest { TopicArn = topicArn, AttributeName = "DisplayName", AttributeValue = "Sample Notifications" }); RetrieveAllTopics(sns); if (string.IsNullOrEmpty(emailAddress) == false) { // Subscribe an endpoint - in this case, an email address Console.WriteLine(); Console.WriteLine("Subscribing email address {0} to topic...", emailAddress); sns.Subscribe(new SubscribeRequest { TopicArn = topicArn, Protocol = "email", Endpoint = emailAddress }); // When using email, recipient must confirm subscription Console.WriteLine(); Console.WriteLine("Please check your email and press enter when you are subscribed..."); Console.ReadLine(); } Console.WriteLine(); var sqsRequest = new CreateQueueRequest { QueueName = "MyExperimentQueue" }; var createQueueResponse = sqs.CreateQueue(sqsRequest); var myQueueUrl = createQueueResponse.QueueUrl; var myQueueArn = sqs.GetQueueAttributes( new GetQueueAttributesRequest { QueueUrl = myQueueUrl, AttributeNames = new List <string> { "All" } }).QueueARN; ListQueues(sqs); if (myQueueArn != null) { //https://aws.amazon.com/blogs/developer/subscribing-an-sqs-queue-to-an-sns-topic/ if (useEasySubscription) { sns.SubscribeQueue(topicArn, sqs, myQueueUrl); } else { var subscribeRequest = new SubscribeRequest(topicArn, "SQS", myQueueArn); sns.Subscribe(subscribeRequest); ActionIdentifier[] actions = new ActionIdentifier[2]; actions[0] = SQSActionIdentifiers.SendMessage; actions[1] = SQSActionIdentifiers.ReceiveMessage; Policy sqsPolicy = new Policy() .WithStatements(new Statement(Statement.StatementEffect.Allow) .WithPrincipals(Principal.AllUsers) .WithResources(new Resource(myQueueArn)) .WithConditions(ConditionFactory.NewSourceArnCondition(topicArn)) .WithActionIdentifiers(actions)); var attributeDictionary = new Dictionary <string, string>(); attributeDictionary.Add("Policy", sqsPolicy.ToJson()); var attributes = new SetQueueAttributesRequest { QueueUrl = myQueueUrl, Attributes = attributeDictionary }; sqs.SetQueueAttributes(attributes); } Thread.Sleep(TimeSpan.FromSeconds(5)); // Publish message Console.WriteLine(); Console.WriteLine("Publishing message to topic..."); sns.Publish(new PublishRequest { Subject = "Test", Message = "Testing testing 1 2 3", TopicArn = topicArn }); var receivedMessageResponse = ReceiveMessage(sqs, myQueueUrl); DeleteReceivedMessage(receivedMessageResponse, myQueueUrl, sqs); } //Console.WriteLine(); //Console.WriteLine("Deleting topic..."); //sns.DeleteTopic(new DeleteTopicRequest //{ // TopicArn = topicArn //}); } catch (AmazonSimpleNotificationServiceException ex) { Console.WriteLine("Caught Exception: " + ex.Message); Console.WriteLine("Response Status Code: " + ex.StatusCode); Console.WriteLine("Error Code: " + ex.ErrorCode); Console.WriteLine("Error Type: " + ex.ErrorType); Console.WriteLine("Request ID: " + ex.RequestId); } Console.WriteLine(); Console.WriteLine("Press enter to exit..."); Console.ReadLine(); }