当前位置: 首页 > 知识库问答 >
问题:

AWS SNS 推送通知未发送

容俊豪
2023-03-14

我为沙盒iOS设置了推送通知,它们曾经工作过,但由于某种原因目前不工作。这是来自云观察日志的错误AWS SNS:

{
"notification": {
    "messageMD5Sum": "39af77c36a92b71afb73212e74adf845",
    "messageId": "f8b4a21e-c3ba-52ed-8b17-ed36acf37e65",
    "timestamp": "2016-01-31 20:22:33.154"
},
"delivery": {
    "deliveryId": "a0941dde-8990-54ee-96e3-52f6e6d993d0",
    "destination": "arn:aws:sns:us-east-1:445291524102:endpoint/APNS_SANDBOX/BusyTime/a97020ec-4121-3995-a119-a7b6779ed602",
    "providerResponse": "NotificationErrorResponse(command=8, status=InvalidToken, id=1, cause=null)",
    "dwellTimeMs": 525,
    "attempts": 1,
    "token": "df6cb7064c391cc8ca1709c127b40f838768336c691512e00c73d01a18d6b0af",
    "statusCode": 8
},
"status": "FAILURE"
   }

这是我的发送代码(AWS Lambda调用此代码):

params = {"Attributes": { //update the endpoint
                    "Enabled": 'true',
                },
                "EndpointArn" : user.endpointARN.S
        }
        sns.setEndpointAttributes(params, function(err, data) {
            if (err){ 
                console.log(err, err.stack); 
            }
            else{     

                var paramsSNS = {
                    TargetArn:user.endpointARN.S,
                    Message:message
                };

                sns.publish(paramsSNS, function(err, data) {
                if (err){ 
                    console.log(err, err.stack);
                }
                else{     
                    console.log(data);   
                    context.succeed(data);
                }
                });
            }       
        });

Lambda方法的返回数据:

 {
  "ResponseMetadata": {
    "RequestId": "61f9bc48-fd8b-5408-b7a9-f36093c023ad"
  },
  "MessageId": "657eaace-69aa-5f87-96dd-e5e607e1d822"
}

我已经将问题缩小到不与我的lambda方法关联,因为我试图发布到直接从SNS控制台创建的endpoint。我还想知道为什么这个旧的实现在过去,一个月或两个月前,仍然有效,而现在不再有效。我认为这可能与过期的证书有关,但我不确定如何检查/我认为如果我的证书过期,我不会收到这种提供商响应。

共有1个答案

安毅
2023-03-14

错误表示令牌无效。除了标记“Enabled=true”之外,您可能还需要更新令牌。相关博客文章:http://mobile.awsblog.com/post/Tx223MJB0XKV9RU/Mobile-token-management-with-Amazon-SNS

 类似资料:
  • 如何通过Azure从我的UWP-App向不同设备上的应用程序的其他实例发送推送通知? 以下是注册设备以接收推送的说明。(这是可行的)第二部分是关于如何在控制台应用程序上发送推送(这也是可行的)https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-windows-store-dotnet-get-star

  • 我在我的应用程序中使用Google日历API。 我面临的问题是谷歌没有给我发送推送通知。 我在这里设置我的应用程序https://console.developers.google.com/ 已验证域名:https://console.developers.google.com/apis/credentials/domainverification 观看日历:https://developers.

  • 我正在写一个iOS的应用程序,使用laravel的API和谷歌Firebase的推送通知。当我使用Firebase云消息传递发送消息推送时,它会进入我的设备。当我使用laravel发送推送通知时,它不会影响。这里是我的脚本发送推送通知laravel: 它返回一个成功的结果,但通知未发送到iOS设备。 PS:它可以在Android设备上成功运行。

  • 这是舱单 这是我的注册令牌类 这是我的Firebase服务类

  • 首先,我想声明我一直在研究推送通知和web通知之间的关系,但我有点困惑。 我从这里读到PWAs的推送通知在Safari上的iOS(iPhone)不起作用:从PWA向iOS发送推送通知 然而,如果iPhone用户使用的是Chrome,这是否意味着它们可以工作呢?或者推送通知在任何浏览器上对iPhone中的PWAs都不起作用? 这就把我带到了web通知。web通知在后台对PWAs起作用吗?我的问题是w

  • 我正在rails 5中编写一个Api Rest,使用gem'fcm'发送通知。我已经在android应用程序中配置了firebase,我可以从firebase控制台成功发送通知,但从rails api我无法在设备中接收通知,这是我的代码: 这是我的rails控制器: 我从邮递员执行这是执行控制器的路线: http://localhost:3000/acciones/enviar?here 将设备令