Amazon SNS: Comment obtenir EndpointArn par jeton(registrationId) à l'aide d'amazon .net sdk?

J'essaie d'obtenir EndpointArn par id d'enregistrement à l'aide d'aws .net sdk. Mais je ne pouvais pas trouver un bon moyen de le faire.

Ma première tentative a été de course CreatePlatformEndpointRequest avec la même registrationId, qui est enregistré à la SNS Application avant, envoyé par le client(android). Avec cette façon, l'api aws vous donne la EndpointArn pour ce numéro d'enregistrement.

Amazon: Le CreatePlatformEndpoint action est la quantité, de sorte que si le demandeur
possède déjà un point de terminaison avec le même dispositif, les jetons et les attributs,
que le point de terminaison de l'ARN est retourné sans la création d'un nouveau point de terminaison.

Mais si vous avez stocké quelque chose à CustomUserData avant de vous besoin d'envoyer les mêmes données utilisateur pour obtenir de l'extrémité arn pour ce numéro d'enregistrement, sinon vous aurez une exception comme ci-dessous.

Paramètre non valide: Jeton Raison: point de Terminaison
{My Endpoint ARN}
existe déjà avec le même Jeton, mais des attributs différents.

Je pense que je vais utiliser CreatePlatformEndpoint() sans les données de l'utilisateur et quand j'ai besoin d'Extrémité Arn pour un registrationId je vais courir CreatePlatFormEndpoint uniquement avec ce numéro d'enregistrement.

Est-il une autre façon d'obtenir EndpointArn par jeton de mieux que la solution ci-dessus ?

Merci.

  • Juste pour info: je viens de prendre cette décision... Et je continue à avoir le même message d'erreur. - Je envoyer ", " selon les données de l'utilisateur et je continue à avoir le retour d'erreur :s
  • Je suis confronté au même problème. Pas sûr de ce qui va mal ?
  • Nous avons le même problème. voir notre question: stackoverflow.com/questions/22227262/...
  • vous pouvez obtenir de l'ARN du point d'arrivée du message de l'exception, SNS renvoie l'ARN de déjà existé point de fin
  • Sérieusement c'est une terrible solution. Que faire si le format du message d'erreur changements?
  • c'est juste une solution de contournement dans le cas où quelqu'un veut l'utiliser. votre problème possible également de corriger les "si" dans l'avenir aws décide de supprimer arn de message d'exception
  • Réponse tardive, mais que la "solution de contournement" est en fait à ce qu'Amazon propose dans leurs exemples. Ils ont un exemple de code qui traite le message d'erreur à l'aide d'une expression régulière pour extraire l'ARN. Je ne l'ai pas cru la première fois que je l'ai vu. Pour moi, c'est une très mauvaise pratique pour faire ce genre de trucs.
  • Par la voie CreatePlatformEndpoint demande de recherche idempotent. De sorte que vous pouvez tirer une fois que vous voulez. Et chaque fois que vous obtenez même endpointArn en réponse. Mais idempotentness exiger mêmes attributs dans la demande

InformationsquelleAutor Barbaros Alp | 2014-03-19