【发布时间】:2014-04-25 10:23:30
【问题描述】:
我正在尝试使用 aws .net sdk 通过注册 ID 获取 EndpointArn。但我找不到一个很好的方法来做到这一点。
我的第一次尝试是使用相同的registrationId 运行CreatePlatformEndpointRequest,该registrationId 之前已注册到SNS 应用程序,由客户端(android)发送。通过这种方式,aws api 为您提供了此注册 ID 的 EndpointArn。
Amazon: CreatePlatformEndpoint 动作是幂等的,所以如果请求者 已经拥有一个具有相同设备令牌和属性的端点, 返回该端点的 ARN,而不创建新的端点。
但是,如果您在需要发送相同的用户数据以获取此注册 ID 的端点 arn 之前存储了一些内容到 CustomUserData,否则您会收到如下所示的异常。
无效参数:令牌原因:端点 {我的端点 ARN} 已经存在同一个Token,但属性不同。
我想我将在没有用户数据的情况下使用 CreatePlatformEndpoint(),当我需要 Endpoint Arn 作为registrationId 时,我将仅使用此注册 ID 运行 CreatePlatFormEndpoint。
有没有比上面的解决方案更好的通过令牌获取 EndpointArn 的方法?
谢谢。
【问题讨论】:
-
仅供参考:我只是做出这个决定......而且我继续遇到同样的错误。我将“”作为用户数据发送,并且继续返回错误:s
-
我也面临同样的问题。不知道出了什么问题?
-
我们也有同样的问题。查看我们的问题:stackoverflow.com/questions/22227262/…
-
可以从异常信息中获取端点的ARN,SNS返回已经存在的端点的ARN
-
@babur 说真的,这是一个糟糕的解决方案。如果错误信息的格式发生变化怎么办?
标签: .net amazon-web-services push-notification google-cloud-messaging amazon-sns