新项目中能否搭配FCM(Firebase Cloud Messaging)使用XMPP协议?
FCM XMPP新版密钥认证错误解决方案
- 针对你遇到的
<incorrect-encoding/>错误,核心原因是SASL PLAIN认证的base64编码内容不符合规范,可按以下步骤排查修复:- 先按标准格式拼接原始认证二进制串:
0x00 + <你的Sender ID>@fcm.googleapis.com + 0x00 + <新版Server Key>,注意前后两个0x00是单字节空字符,不要转义成字符串形式的\0 - 对拼接好的二进制串做base64编码时,必须关闭自动换行功能,输出连续无任何空白字符(空格、换行、制表符均不可)的base64结果,你示例中的base64串中间带换行是典型错误场景,多数esp8266自带的base64库默认会每76字符插入换行,需要手动修改配置关闭该逻辑
- 填充到
<auth>标签时,标签内容仅保留base64串,不要添加多余的空白字符
- 先按标准格式拼接原始认证二进制串:
- 关于FCM XMPP协议的存续问题:目前官方没有公开宣布弃用XMPP接入方案,现有功能仍在正常维护,只要认证参数正确即可正常使用
- 额外注意:你使用esp8266测试时,确保已经导入fcm.googleapis.com的最新根证书,避免SSL链路层面的异常干扰认证流程
内容的提问来源于stack exchange,提问作者Assay
相关产品推荐
相关产品推荐

