2012-10-22 4 views
21

J'essaye de publier avec AWSSDK d'Amazon pour C# et le service de notification simple.Amazon Simple Notification Service AWSSDK C# - S.O.S

Il n'y a pas d'échantillons fournis avec le SDK et il n'y a aucun échantillon sur le web que je pourrais trouver après 2 heures de googling. Je suis arrivé avec cela, mais il lance une exception qui ne donne pas plus d'informations que la seule chaîne, "TopicARN" - pas d'exception interne - nuffin!
Si quelqu'un a envoyé avec succès un message avec SNS via C# en utilisant la AWSSDK J'aimerais voir même exemple de travail les plus rudimentaires. J'utilise le dernier SDK 1,5x

Voici le code:

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

Voici le lien pour les codes: http://docs.aws.amazon.com/sdkfornet/latest/apidocs/Index.html –

Répondre

27

Voici un exemple qui crée un sujet, définit un nom d'affichage des rubriques, souscrive une adresse e-mail au sujet, envoie un message et supprime le sujet. Notez qu'il y a deux endroits où vous devriez attendre/vérifier votre email avant de continuer. Client est l'instance de client, topicName est un nom de sujet arbitraire.

// 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. Cela fonctionne et est EXCELLENT. Pourriez-vous commenter comment vous êtes arrivé à ce code compte tenu du manque d'échantillons sur le net, y compris le site AWS? –

+3

Il existe plusieurs [ressources de documentation sur le site officiel d'AWS] (http://aws.amazon.com/documentation/), telles que [Guide de démarrage d'Amazon SNS] (http://docs.amazonwebservices.com/ sns/latest/gsg/Welcome.html). Vous pouvez également trouver des informations utiles et poser des questions sur les [Forums AWS] (https://forums.aws.amazon.com/index.jspa). Mais parfois, cela aide simplement à faire partie de l'équipe .NET SDK. :) –

+0

Parfait. Cela a tout ce dont j'ai besoin. Merci. – CodeWarrior