创建鸿蒙推送证书
更新时间: 2024/08/29 16:40:09
网易云信即时通讯 SDK(简称 NIM SDK)鸿蒙版自 v0.6.0 起支持鸿蒙推送服务。本文主要介绍如何集成鸿蒙的离线推送通道,使消息通过鸿蒙推送服务离线推送至未在线的用户。整体流程如下所示:
sequenceDiagram
actor 开发者
开发者 ->> 华为开发者平台: 创建鸿蒙(HarmonyOS)应用
开发者 ->> 华为开发者平台: 启用推送服务
开发者 ->> 华为开发者平台: 为您的项目申请 API 服务凭证
开发者 ->> 网易云信控制台: 填入鸿蒙推送证书
第一步:创建鸿蒙应用
若您已在华为开发者平台开通鸿蒙推送服务,则忽略该步骤。具体信息请参考鸿蒙推送最新文档 鸿蒙推送服务启用指南。
-
在华为开发者平台注册开发者账号并完成认证,详情请参考 华为开发者账号注册指南。
-
登录华为开发者平台,创建华为项目。在当前项目下,创建 HarmonyOS 应用。
创建 HarmonyOS NEXT 应用,而非 Android 应用。
第二步:启用推送服务
在 华为 AppGallery Connect 平台 中,选择当前项目,单击左侧 推送服务 并开通。
第三步:申请 API 服务凭证
-
登录 华为开发者官网,确保华为项目、HarmonyOS 应用已创建完毕。
-
进入 管理中心,依次单击 API 服务 > 我的 API > 新增 HMS API 服务,然后选择 推送服务。
-
创建 API 服务凭证,单击 凭证 > 服务账号密钥 > 创建凭证,选择创建 服务账号密钥 类型凭证。
若创建步骤不适用,最新步骤需参考 创建服务账号密钥。在华为开发者的 API Console 上创建并下载服务账号密钥文件,相关创建步骤及支持此类鉴权的公开 API 类型请参考 API Console 操作指南。
以下为一个 服务账号密钥 文件示例,您需要按照一定格式在网易云信控制台的应用配置中填入,映射关系请参考下文 第四步:添加鸿蒙推送证书。
JSON
{ "project_id": "dev7519896637536769923", "key_id": "18366af0b4b44dd8bb4a77184d04704f", "private_key": "----BEGIN PRIVATE KEY----\nMIIJQgIBADANB 此处省略较多字符 MYT76N4WB3Y8PZV6p5gMMQ==\n----END PRIVATE KEY----\n", "sub_account": "101783233", "auth_uri": "https://oauth-login.cloud.huawei.com/oauth2/v3/authorize", "token_uri": "https://oauth-login.cloud.huawei.com/oauth2/v3/token", "auth_provider_cert_uri": "https://oauth-login.cloud.huawei.com/oauth2/v3/certs", "client_cert_uri": "https://oauth-login.cloud.huawei.com/oauth2/v3/x509?client_id=101783233" }
创建的 服务账号密钥(即推送证书) 请谨慎保管,网易云信控制台需上传 服务账号密钥 部分信息才能实现离线推送能力。
第四步:添加鸿蒙推送证书
-
登录 网易云信控制台。
-
在首页 应用管理 中选择应用进入 应用配置 页面。
-
顶部选择 证书管理 页签,进入推送证书配置页。
-
在对应的鸿蒙证书配置项中,单击 添加证书,配置推送相关信息。
设置项 说明 示例 证书名称 名称需要与 NIM SDK 初始化时传入 pushServiceConfig.harmonyCertificateName
完全相同,上传的推送证书才会生效。DEMO_HMOS_PUSH_xxx
应用包名 与华为 AppGallery Connect 中创建的 HarmonyOS 应用包名相同。 - ProjectId 服务账号密钥 的 project_id
具体值,例如"project_id": "dev7519896637536769923"
。dev7519896637536769923
。KeyId 服务账号密钥 的 key_id
具体值,例如"key_id": "18366af0b4b44dd8bb4a77184d04704f"
。18366af0b4b44dd8bb4a77184d04704f
SubAccount 服务账号密钥 的 sub_account
具体值,例如"sub_account": "101783233"
。101783233
PrivateKey 服务账号密钥 的 private_key
具体值,例如----BEGIN PRIVATE KEY----\nMIIJQgIBADANB************MYT76N4WB3Y8PZV6p5gMMQ==\n----END PRIVATE KEY----\n
,注意您需要去掉首尾的换行符,仅保留中间字段。XXXXXMIIJQgIBADANB************MYT76N4WB3Y8PZV6p5gMMQXXXXXX==
-
填写证书信息并上传后,单击 确定。