HarmonyOS 获取推送token时报错1000900010
通过push service 的api获取token时报错。
已经按照https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/push-error-code-V5#section3835124673016的提示完成了三项准备工作。
1.应用在AppGallery Connect上创建时选择HarmonyOS应用类型。
2.应用在AppGallery Connect上配置的应用已经添加公钥指纹。
3.在项目模块级别下的src/main/module.json5(例如entry/src/main/module.json5)中配置client_id。
错误信息如下,每次都可以复现。
05-28 18:55:11.211 4786-5135 C05300/push_manager com.hyphe…chatdemo E [nodict]Failed to SendMessageRequest, uri is getToken, internal error code is 100000032@push_remote_invoke.cpp:77:SendMessageRequest
05-28 18:55:11.212 4786-4786 C05300/push_manager com.hyphe…chatdemo E [nodict]Execute async work fail: [Error(1000900010), description()].@push_napi_invoke_helper.cpp:126:ReplyStringCompleteCallback
05-28 18:55:11.217 4786-4786 A00000/testTag com.hyphe…chatdemo E Get push token catch error: 1000900010 Illegal application identity.
根据提供的信息看,异常是由于应用签名不匹配导致的:
05-29 19:56:44.544 9742 9746 E C05500/AuthService: [scope_manager.cpp] CheckCertFingerprint# check certFinger failed
请检查AGC上的指纹配置是否正确。
公钥指纹获取方法:
安装应用后执行(Windows):
hdc shell bm dump -n 包名 | findstr appId
安装应用后执行(Mac):
hdc shell bm dump -n 包名 | grep appId
保存(包名_)后面的字符串,执行如下命令:
certutil -hashfile SHA.txt SHA256