我想使用Amazon SNS Mobile Push Notifications與GCM結合使用來將通知推送到Android設備。使用亞馬遜SNS移動推送服務註冊移動端/ Android端點
我有GCM我的應用程序運行起來,它收到來自谷歌的註冊ID,可以收到通知,如果通過https://android.googleapis.com/gcm/send
- 通知發送到設備手動添加該設備的註冊ID爲我的AWS/SNS項目中的移動端點。
下一步是將設備註冊爲具有SNS服務的端點。 爲此,documentation建議:
註冊從設備的令牌,將在 未來安裝的應用程序
您可以使用以下兩種方法之一:
使用Amazon Cognito服務:您的移動應用將需要憑據 才能創建與您的亞馬遜SNS平臺 應用關聯的終端。我們建議您使用 一段時間後過期的臨時憑證。對於大多數情況下,我們建議您使用Amazon Cognito創建臨時安全憑證 。有關 的更多信息,請參閱使用標識提供程序爲 移動應用程序創建臨時安全證書。如果您希望在應用程序註冊Amazon SNS時收到 的通知,您可以註冊以接收將提供新端點ARN的 Amazon SNS事件。您還可以使用ListEndpointByPlatformApplication API獲取在Amazon SNS上註冊的端點的完整列表 。
使用代理服務器:如果您的應用程序 基礎設施已經爲您的移動應用,以 呼叫,並在每個安裝註冊後,您可以繼續使用 此設置。您的服務器將充當代理,並將設備令牌 傳遞給Amazon SNS移動推送通知以及您想要存儲的任何用戶數據。爲此,代理服務器將使用您的AWS憑證將 連接到Amazon SNS,並使用CreatePlatformEndpoint API調用來上傳令牌信息。將返回 新創建的端點亞馬遜資源名稱(ARN), 您的服務器可以存儲該亞馬遜資源名稱以進行後續發佈調用至 Amazon SNS。
鑑於我不想使用代理服務器,但讓設備直接註冊SNS來創建移動端點(About Web Identity Federation),下面的假設是否正確?
我要麼必須直接在應用程序中存儲用於訪問此AWS賬戶的憑證(當然不是選項),要麼用戶必須通過一些OpenID賬戶來識別自己(我也不想這樣做是因爲用戶不會僅僅爲了接收推送消息而識別自己)。