IBM MobileFirst 8 - 推送通知错误代码:invalid_client
Posted
技术标签:
【中文标题】IBM MobileFirst 8 - 推送通知错误代码:invalid_client【英文标题】:IBM MobileFirst 8 - Push Notification errorCode: invalid_client 【发布时间】:2017-09-18 13:37:17 【问题描述】:在android中注册设备推送通知时出现以下错误,
多功能一体机服务器:8.0.0.00-20170220-1900 科尔多瓦:6.1.1 cordova-plugin-mfp:8.0.201703309 cordova-plugin-mfp-push: 8.0.2017012410注册失败 设备:“com.ibm.mobilefirstplatform.clientsdk.android.push.api.MFPPushException: 响应:状态 = 400,文本: \"errorCode\":\"invalid_client\",\"errorMsg\":\"不正确的 JWT 格式\",错误消息:JWT 格式不正确"
找到了类似的问题,但没有明确的数字:
IBM MobileFirst v8 trying to obtain Token on android cordova app after successful login challenge handler
Cordova Android application getting "invalid_client" from Mobile First 8.0 server
任何解决方案或建议都将是可观的。
【问题讨论】:
【参考方案1】:看起来您缺少 android 平台中的步骤。在 Android Studio 中,将以下活动添加到应用程序标签:
<activity android:name="com.ibm.mobilefirstplatform.clientsdk.android.push.api.MFPPushNotificationHandler" android:theme="@android:style/Theme.NoDisplay"/>
【讨论】:
【参考方案2】:此问题的最常见原因是客户端和服务器之间的时间同步失败。验证服务器时间是否与客户端偏移。特别是如果服务器有过去的时间。
【讨论】:
如果我的服务器和客户端在不同的时区,如何解决这个问题? 另外,当我添加安全范围 push.mobileclient 时,保存时间太长。 这件事与时区无关。同步是“自 1970 年以来的秒数”。确保服务器没有在遥远的过去设置时间。如果您仍然看到问题,请打开 PMR 你的线路.. 看看服务器是不是设置了很久以前的时间... , 是什么意思??如何查看服务器时间?【参考方案3】:我遇到了同样的问题,重新启动客户端设备/模拟器对我有帮助。
(“检查服务器时间”对我来说不实用,我的服务器在美国作为 Bluemix 服务运行)
顺便说一句:我可以在 android 模拟器中重现这个“不正确的 JWT 格式”:如果 android 模拟器在一夜之间运行并且我第二天尝试,我总是会收到这个错误(直到重新启动模拟器)
【讨论】:
以上是关于IBM MobileFirst 8 - 推送通知错误代码:invalid_client的主要内容,如果未能解决你的问题,请参考以下文章
Mobilefirst 8.0 推送通知 API - 推送设备注册 (POST)
如何在 IBM MobileFirst 的顶部(状态栏)中获取推送通知