未收到Amazon SNS的GCM推送通知

时间:2015-05-07 06:38:31

标签: php android push-notification google-cloud-messaging amazon-sns

我正尝试通过 php 推送通知发送到 android 应用。 我设置亚马逊sns 帐户,并使用用于GCM API的Google服务器密钥创建 SNS平台

使用 AWS凭证,我写了一个 cron ,它从数据库读取通知消息,并使用amazon php api发布到sns服务。 我在cron上获得了我发布通知的Amazon端点。

我收到传递 requestid 状态的通知。但实际通知未在设备上接收。

Array ( [data] => Guzzle\Service\Resource\Model Object ( [structure:protected] => [data:protected] => Array ( [MessageId] => ac9e1d0c-43a4-5d1a-833d-50c94465421d [ResponseMetadata] => Array ( [RequestId] => c1da8997-2e32-50d0-a092-c45229f36fd7 ) ) ) )

我遵循的步骤:

  1. 为GCM创建了Google API凭据。在app中使用projectid,在Amazon平台上使用Server key

  2. 在aws中创建了用户并添加了对sns具有所有访问权限的策略

  3. 在php aws api中使用amazon用户凭据

  4. 从Android / GCM创建了amazon sns应用程序平台,并在那里使用了google服务器密钥。

  5. 将从上述步骤收到的应用程序ARN添加到php api调用。

  6. 在php cron中,使用从GCM收到的registration_id为设备创建了AmazonEndpoint。

  7. 在亚马逊端点上发布的通知消息。

  8. 并且卡住......即使在api通话中获得成功后,也没有在设备上收到通知

  9. 谁能告诉我确切的步骤?我错过了什么吗?

2 个答案:

答案 0 :(得分:3)

我使用Firabase和AWS SNS服务从php发送。我按照这个视频教程https://youtu.be/iBTFLu30dSg(俄语但有英文字幕)一步一步地做了。它现在适用于我,我成功地从移动设备上的PHP代码接收推送通知

答案 1 :(得分:0)

使用json来主题:

{
  "default": "Msg test from sns",
  "GCM": "{\"data\":{\"id\":\"161223182046\",\"badge\":1,\"message\":\"Msg test from sns\",\"title\":\"test\",\"_event\":{\"created\":1482547772}}}"
}

对于端点退出默认行:

{
  "GCM":"{\"data\":{\"id\":\"161223182046\",\"badge\":1,\"message\":\"Msg test from sns\",\"title\":\"test\",\"_event\":{\"created\":1482547772}}}"
}

每次推送id_event.created行都是唯一的。