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中注册设备推送通知时出现以下错误,

注册失败 设备:“com.ibm.mobilefirstplatform.clientsdk.android.push.api.MFPPushException: 响应:状态 = 400,文本: \"errorCode\":\"invalid_client\",\"errorMsg\":\"不正确的 JWT 格式\",错误消息:JWT 格式不正确"

多功能一体机服务器:8.0.0.00-20170220-1900 科尔多瓦:6.1.1 cordova-plugin-mfp:8.0.201703309 cordova-plugin-mfp-push: 8.0.2017012410

找到了类似的问题,但没有明确的数字:

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 意外错误中的推送通知

在 ibm Mobilefirst 中以非活动模式推送通知

如何在 IBM MobileFirst 的顶部(状态栏)中获取推送通知

IBM MobileFirst:如何让应用程序接收任何活动的推送通知

我们如何跟踪从 IBM MobileFirst 7.0 发送到 Apple APNS 服务器的推送通知?