未收到Amazon SNS的GCM推送通知

Bhu*_*han 5 php android push-notification amazon-sns google-cloud-messaging

我试图通过PHP发送推送通知Android应用程序.我设置了amazon sns帐户,并使用Google Server密钥为GCM API创建了SNS平台.

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

我收到通过状态和通知请求.但实际通知未在设备上接收.

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 ) ) ) )
Run Code Online (Sandbox Code Playgroud)

我遵循的步骤:

  1. 为GCM创建了Google API凭据.在应用程序中使用projectid,在Amazon平台上使用Server密钥

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

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

  4. 从Android/GCM创建了亚马逊sns应用平台,并在那里使用了谷歌服务器密钥.

  5. 从上述步骤中添加了应用ARN到php api调用.

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

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

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

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

小智 0

使用 json 来主题,例如:

{
  "default": "Msg test from sns",
  "GCM": "{\"data\":{\"id\":\"161223182046\",\"badge\":1,\"message\":\"Msg test from sns\",\"title\":\"test\",\"_event\":{\"created\":1482547772}}}"
}
Run Code Online (Sandbox Code Playgroud)

对于端点退出默认行:

{
  "GCM":"{\"data\":{\"id\":\"161223182046\",\"badge\":1,\"message\":\"Msg test from sns\",\"title\":\"test\",\"_event\":{\"created\":1482547772}}}"
}
Run Code Online (Sandbox Code Playgroud)

每次推送的whereid和rows 都是唯一的。_event.created