我正尝试通过 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 ) ) ) )
我遵循的步骤:
为GCM创建了Google API凭据。在app中使用projectid,在Amazon平台上使用Server key
在aws中创建了用户并添加了对sns具有所有访问权限的策略
在php aws api中使用amazon用户凭据
从Android / GCM创建了amazon sns应用程序平台,并在那里使用了google服务器密钥。
将从上述步骤收到的应用程序ARN添加到php api调用。
在php cron中,使用从GCM收到的registration_id为设备创建了AmazonEndpoint。
在亚马逊端点上发布的通知消息。
并且卡住......即使在api通话中获得成功后,也没有在设备上收到通知
谁能告诉我确切的步骤?我错过了什么吗?
答案 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
行都是唯一的。