本指南假定您已有手动创建的 ESA,并向您展示 如何配置该功能以与 EMM 推送通知搭配使用。任务已完成 由 ESA 所有者(您、作为 EMM 解决方案提供商或您的客户)使用 Google API 控制台:
1. 在 Google API 控制台中为 Cloud 项目中。
2. 向 ESA 授予编辑者权限。
3. 设置项目以接收 EMM 通知。
4. 发送测试 EMM 通知。
5. 订阅主题。
以下各部分更全面地概述了这些步骤。
1. 为项目启用 Cloud Pub/Sub API 访问权限
要为您的项目激活 Cloud Pub/Sub API,请执行以下操作:
- 在 API 控制台中,打开 API 库。选择 项目(或根据需要创建一个新项目)。API 库列出了 可用的 API(按产品系列和热门程度分组)。
- 在“Google Cloud API”下,找到 Cloud Pub/Sub API。(如果 已在列表中显示,请使用搜索功能查找)。
- 选择 Cloud Pub/Sub API,然后点击启用。
启用 API 后,请从 API 和服务菜单中,点击 信息中心:查看所有已启用 API 的列表。采用云技术之前 Pub/Sub API 可用于发送给客户的消息,您必须授予编辑者 该客户服务账号(其 ESA)的权限。
2. 向 ESA 授予编辑者权限
在 API 控制台中,授予必要的权限:
- 在 API 和服务菜单中,点击凭据。您应该 服务账号密钥下列出了您的客户 ESA。
- 点击 Manage service accounts(管理服务账号)以打开所有服务账号 与项目相关联。
- 从列表中选择相应的 ESA 账号,然后点击 权限。
- 在添加成员字段中:
<ph type="x-smartling-placeholder">
- </ph>
- 输入与 ESA 关联的电子邮件地址。
- 从下拉选择器中选择编辑器( )。
- 点击添加以保存权限。
3. 设置项目以接收 EMM 通知
启用 Cloud Pub/Sub API 并使用编辑器配置了 ESA 权限,您可以将项目配置为接收 EMM 通知, 详见设置 EMM 推送通知。简而言之,设置过程涉及配置 用于向订阅者推送通知的 HTTP 服务器端点。
EMM 通知的递送方式是
protobufs
(协议缓冲区,一种用于对结构化数据进行序列化的简单格式),打包为
JSON 数据包内的 byte64 编码字节数组消息。在代码中,您必须
解析此 JSON 并解码协议缓冲区内容。以下是一个示例
NewPermissionsEvent
的 base64 网址安全编码 protobuf
通知:
CglDMTIzNDU2NzgQgM-C6sMqOooBChdhcHA6Y29tLmZha2VhcHAuZXhhbXBsZRIpYW5kcm9pZ
C5wZXJtaXNzaW9uLldSSVRFX0VYVEVSTkFMX1NUT1JBR0UaKGFuZHJvaWQucGVybWlzc2lvbi5SRUF
EX0VYVEVSTkFMX1NUT1JBR0UaGmFuZHJvaWQucGVybWlzc2lvbi5WSUJSQVRF
它可以解码为:
{
enterprise_id: "C12345678"
event_notification_sent_timestamp_millis: 1461316528000 # 1.33Ti;
[as milliseconds]: 2016-04-22 10:15:28 +0100
new_permissions_event: {
product_id: "app:com.fakeapp.example"
requested_permissions: [ "android.permission.WRITE_EXTERNAL_STORAGE" ]
approved_permissions : [ "android.permission.READ_EXTERNAL_STORAGE",
"android.permission.VIBRATE" ]
}
}
要解码 protobuf 格式的 EMM 通知,您可以使用
emm_pubsub.proto
文件位于
<ph type="x-smartling-placeholder"></ph>
GitHub 上的 google/play-work 代码库。当新的通知类型出现以下情况时:
新类型对该文件进行了扩展,并更新了示例代码。
这些更改应向后兼容,但请确保您的代码可以
能够顺利地接收未知类型的通知以及
(位于.proto 文件内)
4. 发送测试 EMM 通知
通过发送测试通知,您可以 将系统设置为接收来自 Google Play 的 EMM 通知,以及 您还可以了解主题名称(相同的主题名称 所有 Google Play EMM 通知)。
使用 Play EMM API,对 Enterprises 资源调用
sendTestPushNotification
方法。
调用此操作会导致系统发送测试 EMM 通知。如果是企业移动管理 (EMM) 服务 已正确配置通知,则 API 会返回以下内容:
{ topic_name: "/projects/project-name/topics/play-work-012345", message_id: "128976912439" }
5. 订阅该主题
使用运行 发布商测试代码(在设置 EMM 推送中 通知指南),请订阅指定的主题。您应该会获得 以及收到的所有实际通知 。