Amazon SNS: Wie man EndpointArn von token(registrationId) mit amazon .net sdk?

Ich versuche EndpointArn durch Registrierungs-id für die Nutzung von aws .net sdk. Aber ich konnte nicht finden einen schönen Weg, es zu tun.

Mein Erster Versuch lief CreatePlatformEndpointRequest mit der gleichen registrationId, die registriert ist, SNS-Anwendung vor, die vom client gesendet wird(android). Mit dieser Möglichkeit, die aws-api gibt Ihnen die EndpointArn für diese Registrierungs-id.

Amazon: Die CreatePlatformEndpoint Aktion ist idempotent, so dass, wenn der Antragsteller
besitzt bereits einen Endpunkt mit dem gleichen Gerät-und token-Attribute,
dieser Endpunkt ist ARN zurückgegeben wird, ohne neue Endpunkt.

Aber wenn Sie gespeichert etwas zu CustomUserData, bevor Sie brauchen, um zu senden, der denselben Benutzer-Daten-Endpunkt arn für diese Registrierungs-id, andernfalls erhalten Sie eine Ausnahme wie unten.

Ungültiger parameter: Token-Grund: Endpunkt
{My Endpoint ARN}
bereits vorhanden, mit dem gleichen Token, aber verschiedene Attribute.

Ich denke, ich werde verwenden CreatePlatformEndpoint() ohne Benutzer-Daten und, wenn ich Endpoint-Arn für eine registrationId ich werde laufen CreatePlatFormEndpoint nur mit diesem Registrierungs-id.

Ist es ein weiterer Weg, um EndpointArn von token besser als die Lösung oben ?

Danke.

  • Nur zur info: ich nehme einfach diese Entscheidung... Und ich habe immer noch den gleichen Fehler. Ich senden", " als user-Daten und ich habe immer noch den Fehler zurück :s
  • Ich bin vor dem gleichen Problem. Nicht sicher, was mache ich falsch ?
  • Wir haben das gleiche problem. sehen Sie unsere Frage: stackoverflow.com/questions/22227262/...
  • Sie können das ARN Ende der Punkt von der exception-message, SNS kehrt ARN-der gab es bereits Ende Punkt
  • Ernsthaft, dass ist eine schreckliche Lösung. Was ist, wenn das format der Fehlermeldung geändert?
  • das ist nur ein workaround, falls jemand will das nutzen. Ihre mögliche Problem auch richtig ", wenn" in Zukunft aws beschließt, Sie zu entfernen arn aus exception-Meldung
  • Späte Antwort, aber dieser "workaround" ist eigentlich das, was Amazon schlägt in Ihrem Beispiel. Haben Sie Beispielcode, analysiert die Fehlermeldung über eine regex zu extrahieren, die ARN. Ich glaube nicht, dass es das erste mal sah ich es. Für mich ist es eine sehr schlechte Praxis, das zu tun diese Art von Sachen.
  • Übrigens CreatePlatformEndpoint Anfrage idempotent. So können Sie das Feuer alle Zeiten, die Sie wollen. Und jedes mal, wenn Sie dieselbe endpointArn in der Antwort. Aber idempotentness erfordern denselben Attributen in der Anfrage

InformationsquelleAutor Barbaros Alp | 2014-03-19
Schreibe einen Kommentar