开发者控制台

Amazon Device Messaging概览

Amazon Device Messaging概览

借助Amazon Device Messaging (ADM),您可以向运行应用的亚马逊设备发送消息,以便让用户了解最新情况并参与其中。无论您是要为用户提供游戏更新还是在好友发来了消息时提醒用户,ADM都可以帮助您实现。

如果您有一个现有Android应用,并且它使用Google Firebase Cloud Messaging (FCM),请遵循设备消息传递迁移指南,或考虑使用A3L Messaging SDK

请注意,Kindle Fire(第1代)设备不支持ADM。

下载Amazon Device Messaging (ADM) SDK

您可以从这里下载ADM SDK:

下载包括API参考文档和已集成ADM的示例应用。请注意,下载ADM SDK即表示您同意我们的程序材料许可协议。将该SDK的内容提取到您所选的位置。

ADM架构

ADM架构遵循几个主要原则:

  • 受保护。 作为发送者,您的服务器将通过OAuth 2.0客户端凭证流进行验证。当您的消息传递到设备后,将使用行业标准SSL对终端节点连接进行加密进行身份验证和保护。并且,ADM使用设备上的Android权限将消息仅定向到您的应用。

  • 简单。 ADM是一种传输机制,用于将消息数据传送到您的应用。ADM不提供任何内置的用户界面或其他数据处理。例如,在收到消息时,您的应用可能会唤醒设备,发布通知,显示自定义用户界面或同步数据。

  • 灵活。 ADM不处理您以任何方式发送的数据。您的消息仅需要大小不超过6KB,并以JSONObject键/值对形式发送数据。

以下特性同样适用于您通过ADM发送的消息:

  • ADM唤醒设备以传送消息。
  • ADM不保证消息能够送达,也不保证消息按顺序送达。
  • 由于网络条件不同,消息可能会被投递多次。您的应用必须能够处理出现重复消息时的情况。
  • 消息过期。默认到期时间为一周;最长到期时间为一个月。您也可以在发送消息时为其设置自定义到期时间。当消息到期时,ADM可能会从传送队列中删除该消息。

角色与职责

使用ADM发送消息时将涉及到四个组件,其中有两个组件由您控制。

您的服务器

  • 请使用访问令牌向ADM服务器标识您的服务器。
  • 将消息发送到ADM服务器以便传送到您的应用。

ADM服务器

  • 使用访问令牌验证您的服务器的身份。
  • 将消息从您的服务器传送到设备上的ADM客户端。

ADM客户端

  • 处理您的应用在ADM服务器中的注册过程。
  • 从ADM服务器接收消息并将其传送到您的应用。

您的应用

  • 注册到ADM客户端以便从您的服务器接收消息。
  • ADM客户端接收传入的消息并处理这些消息。

消息流

大体上,由ADM发送的消息的传送流如下所示:

  1. 您的服务器将一条包含JSON数据的消息发送到ADM服务器
  2. ADM服务器将消息发送到设备上的ADM客户端,该设备上安装有您的应用
  3. ADM客户端获取JSON消息数据并将其作为添加到Android Intent对象的一组附加信息传递到您的应用
understanding-adm
​从您的服务器到应用实例的消息通道

标识与安全

使用ADM时,您将使用以下元素标识您的服务器、应用以及消息的目的地。所有这些元素协同工作,可帮助确保您的数据仅归您所有。

  • 注册ID。 注册ID标识在特定设备上运行且为特定用户注册的唯一应用实例。首次在特定设备上安装您的应用时,它会从ADM请求注册ID,如集成您的应用中所述。您的服务器使用该注册ID将消息定向到正确的设备/用户。如果用户在同一台设备上卸载并重新安装您的应用,应用的注册ID可能会更改。

  • API密钥。 API密钥是一种元数据,ADM使用该元数据来区分您的应用和特定设备上的其他应用。API密钥将由亚马逊分配给您;有关详细信息,请参阅获取凭证

  • OAuth客户端凭证。 您的客户端凭证由两组数据组成:“客户端标识符”和“客户端密钥”值。这些凭证将由亚马逊分配给您;有关详细信息,请参阅获取凭证。您的服务器在请求访问令牌时,需要使用这些凭证的两组数据。

  • 访问令牌。 访问令牌是一种短​期元数据,它向ADM确认您服务器的身份,以便您可以发送消息。您的服务器通过在对ADM服务器的请求调用中提供您的客户端凭证,获取其访问令牌。当您的某一服务器请求访问令牌时,对该请求的响应将包含访问令牌及其使用期限(以秒为单位)。有关更多信息,请参阅请求访问令牌

ADM标识符和凭证

下表列出了ADM标识符和凭证。

ID/凭证 获取者... 获取自... 使用者... 唯一性
注册ID 您应用的特定实例 ADM服务器,通过安装有应用实例的设备上的ADM客户端。 您的服务器、ADM服务器和ADM客户端,用于将消息路由到您的应用的正确实例。 对于特定用户在给定设备上进行的每次应用安装都是唯一的。如果注册ID无效或处于非活动状态,则定向到注册ID的消息将失败并且ADM将返回相应的错误消息。例如,如果用户卸载并重新安装您的应用,您可能会收到一个新的注册ID。
API密钥 由您获取,用于您的应用 亚马逊;请参阅获取凭证以了解有关此过程的详细信息。 ADM客户端,以确认您应用的身份。 不同版本的应用(例如,调试版本和生产版本)均需要其自己的API密钥。
OAuth客户端凭证 由您获取,用于您的服务器 亚马逊;请参阅获取凭证以了解有关此过程的详细信息。 您的服务器和ADM服务器,用于标识您的服务器以便获取访问令牌。 对您的应用是唯一的。
访问令牌 您的服务器 ADM服务器,响应您的请求调用。 您的服务器和ADM服务器,用于验证您能否发送消息。 每个服务器一次仅使用一个访问令牌。在旧访问令牌过期后,您必须获取一个新的令牌。

Last updated: 2022年5月18日