as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
开发
测试
应用发布
盈利
用户参与
设备规格
资源

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日