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
Vous devez vous connecter pour publier un commentaire.
Ce que nous avons fait est de stocker le point de terminaison ARN retourné à partir de CreatePlatformEndpoint dans notre base de données d'application. Si nous avons déjà un point de terminaison ARN association pour un appareil donné, numéro d'enregistrement, puis on appelle
getEndpointAttributes en passant l'extrémité arn à partir de notre base de données. Si un résultat est retourné, nous avons ensuite vérifier si le point de terminaison est marqué activé et si non, alors appelez setEndpointAttributes et touche set "Enabled" à "true".
Malheureusement, il ne ressemble pas à Amazaon API offre un "findBy" méthode pour rechercher par "CustomUserData" ou "Token" et n'a "liste" des méthodes qui liste tous les points de terminaison qui, pour la plupart des applications ne suffira pas si il y a potentiellement des milliers ou des millions d'entrées. C'est presque comme si l'API a été écrit uniquement pour satisfaire les Amazon Console de l'INTERFACE utilisateur des cas d'utilisation.
Aussi, voir Amazon docs par exemple de l'API les demandes et les réponses
http://docs.aws.amazon.com/sns/latest/api/API_GetEndpointAttributes.html
http://docs.aws.amazon.com/sns/latest/api/API_SetEndpointAttributes.html
Selon AWS Blog à https://mobile.awsblog.com/post/Tx223MJB0XKV9RU/Mobile-token-management-with-Amazon-SNS, ils recommandent également que côté app magasins de l'ARN.