2012-10-22 10 views
21

Ich versuche, mit Amazon AWSSDK für C# und den Simple Notification Service zu veröffentlichen.Amazon Simple Benachrichtigungsdienst AWSSDK C# - S.O.S

Es gibt keine Samples, die mit dem SDK geliefert werden, und es gibt keine Samples im Web, die ich nach 2 Stunden Googeln finden konnte. Ich habe mir das ausgedacht, aber es gibt eine Ausnahme, die nicht mehr Informationen liefert als die einzelne Zeichenkette "TopicARN" - keine innere Ausnahme - quasi!
Wenn jemand erfolgreich eine Nachricht mit SNS über C# mit dem AWSSDK gesendet hat, würde ich gerne sehen, selbst das rudimentär funktionierende Beispiel. Ich bin mit dem neuesten SDK 1.5x

den Code Ist hier:

string resourceName = "arn:aws:sns:us-east-1:xxxxxxxxxxxx:StackOverFlowStub"; 
AmazonSimpleNotificationServiceClient snsclient = new AmazonSimpleNotificationServiceClient(accesskey,secretkey); 
AddPermissionRequest permissionRequest = new AddPermissionRequest() 
       .WithActionNames("Publish") 
       .WithActionNames(accesskey) 
       .WithActionNames("PrincipleAllowControl") 
       .WithActionNames(resourceName); 
snsclient.AddPermission(permissionRequest); 

PublishRequest pr = new PublishRequest(); 
pr.WithMessage("Test Msg"); 
pr.WithTopicArn(resourceName); 
pr.WithSubject("Test Subject"); 
snsclient.Publish(pr); 
+0

ist der Link für Codes: http://docs.aws.amazon.com/sdkfornet/latest/apidocs/Index.html –

Antwort

27

Hier ist ein Beispiel, das ein Thema erstellt, setzt ein Thema Anzeigenamen abonniert eine E-Mail-Adresse in das Thema, sendet eine Nachricht und löscht das Thema. Beachten Sie, dass es zwei Punkte gibt, auf die Sie warten sollten, bevor Sie fortfahren. Client ist die Client-Instanz, topicName ist ein beliebiger Themenname. Hier

// Create topic 
string topicArn = client.CreateTopic(new CreateTopicRequest 
{ 
    Name = topicName 
}).CreateTopicResult.TopicArn; 

// Set display name to a friendly value 
client.SetTopicAttributes(new SetTopicAttributesRequest 
{ 
    TopicArn = topicArn, 
    AttributeName = "DisplayName", 
    AttributeValue = "StackOverflow Sample Notifications" 
}); 

// Subscribe an endpoint - in this case, an email address 
client.Subscribe(new SubscribeRequest 
{ 
    TopicArn = topicArn, 
    Protocol = "email", 
    Endpoint = "[email protected]" 
}); 

// When using email, recipient must confirm subscription 
Console.WriteLine("Please check your email and press enter when you are subscribed..."); 
Console.ReadLine(); 

// Publish message 
client.Publish(new PublishRequest 
{ 
    Subject = "Test", 
    Message = "Testing testing 1 2 3", 
    TopicArn = topicArn 
}); 

// Verify email receieved 
Console.WriteLine("Please check your email and press enter when you receive the message..."); 
Console.ReadLine(); 

// Delete topic 
client.DeleteTopic(new DeleteTopicRequest 
{ 
    TopicArn = topicArn 
}); 
+0

Osyan. Das funktioniert und ist ausgezeichnet. Würde es Ihnen etwas ausmachen, zu kommentieren, wie Sie zu diesem Code gekommen sind, wenn Sie das Fehlen von Samples im Internet einschließlich der AWS-Site bedenken? –

+3

Es gibt verschiedene [Dokumentationsressourcen auf der offiziellen AWS-Website] (http://aws.amazon.com/documentation/), z. B. das [Erste Schritte mit Amazon SNS-Handbuch] (http://docs.amazonwebservices.com/ sns/neuste/gsg/Welcome.html). Sie finden auch hilfreiche Informationen und stellen Fragen in den [AWS-Foren] (https://forums.aws.amazon.com/index.jspa). Aber manchmal hilft es nur, im .NET SDK-Team zu sein. :) –

+0

Perfekt. Dies hat alles, was ich brauche. Vielen Dank. – CodeWarrior

Verwandte Themen