spring - FCM 和自我证明问题(重新打开)
问题描述
我正在使用 FCM 发送通知,当我使用 HTTP 时,我的代码运行良好。问题发生在我使用自我证书启用 SSL 时,我无法使用错误UNKOWN
代码调用 FCM 上的主题订阅/取消订阅/取消订阅。
任何想法这个问题请帮助
我正在尝试调试,以便获得访问令牌但无法调用 sub/unsubscribe
这是获取访问令牌的请求
2020-12-02T16:06:24.192Z|2|INFO|fcm-demo|c5230eb4f07f582a,9b72559f0d3b8e39,true,|9|task-2|com.google.api.client.http.HttpTransport|curl -v --compressed -X POST -H 'Accept-Encoding: gzip' -H 'User-Agent: Google-HTTP-Java-Client/1.35.0 (gzip)' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -d '@-' -- 'https://oauth2.googleapis.com/token' << $$$
2020-12-02T16:06:24.320Z|2|INFO|fcm-demo|c5230eb4f07f582a,9b72559f0d3b8e39,true,|9|task-2|com.google.api.client.http.HttpTransport|Total: 1,123 bytes
2020-12-02T16:06:24.321Z|2|INFO|fcm-demo|c5230eb4f07f582a,9b72559f0d3b8e39,true,|9|task-2|com.google.api.client.http.HttpTransport|grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&assertion=eyJhbGciOiJSUzI1NiIsImtpZCI6Ijk4NWUyNWI4ODc0ZDkwMDg4NWJjZWJiZWNmMzg2MjVkMTRmYTNhMWUiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJodHRwczovL29hdXRoMi5nb29nbGVhcGlzLmNvbS90b2tlbiIsImV4cCI6MTYwNjkyODc4NCwiaWF0IjoxNjA2OTI1MTg0LCJpc3MiOiJmaXJlYmFzZS1hZG1pbnNkay03bnZvaEBhc2NlbmQtZGV2LXRlc3QuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZmlyZWJhc2UuZGF0YWJhc2UgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC91c2VyaW5mby5lbWFpbCBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2lkZW50aXR5dG9vbGtpdCBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UuZnVsbF9jb250cm9sIGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvY2xvdWQtcGxhdGZvcm0gaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kYXRhc3RvcmUifQ.jnqKQhzxSkSvX5aKumAN1sJPk07l-IWYfCVi5O_Pxh4SQ0-mSrBEdtUXIXKilECB6Mdhg7dMu4zjewUHaFFLfqT6JYnZkAX3ByjKxjW6IP0RdclxV_cN8H-RRmgQkIdm5NX5OgfvGMZskU-Pwoly5QRVoppnJfr5tndbBCkXdB1FTdzcQr61yAnzGfb9b4NDXFeLrftQzMs2psRxtswIluryjOt_uZoaxyc0NRU3iVc28pKIuGH5z6wAQMfVUtySyec0jdgzPMA2ppGL6Jp8ZwVL7tpbPeKZvWfHgeAVVoFUgCqn8bdvmJ0skGKJjZrkzpjNcDhMJLcM78ZPRmsU_A
2020-12-02T16:06:24.358Z|2|INFO|fcm-demo|c5230eb4f07f582a,9b72559f0d3b8e39,true,|9|task-2|com.google.api.client.http.HttpTransport|-------------- RESPONSE --------------
HTTP/1.1 200 OK
这是调用订阅主题的请求
2020-12-02T16:06:24.394Z|2|INFO|fcm-demo|c5230eb4f07f582a,9b72559f0d3b8e39,true,|9|task-2|com.google.api.client.http.HttpTransport|-------------- REQUEST --------------
POST https://iid.googleapis.com/iid/v1:batchAdd
Accept-Encoding: gzip
Authorization: <Not Logged>
User-Agent: Google-HTTP-Java-Client/1.35.0 (gzip)
access_token_auth: true
Content-Type: application/json; charset=UTF-8
Content-Length: 217
2020-12-02T16:06:24.394Z|2|INFO|fcm-demo|c5230eb4f07f582a,9b72559f0d3b8e39,true,|9|task-2|com.google.api.client.http.HttpTransport|curl -v --compressed -X POST -H 'Accept-Encoding: gzip' -H 'Authorization: <Not Logged>' -H 'User-Agent: Google-HTTP-Java-Client/1.35.0 (gzip)' -H 'access_token_auth: true' -H 'Content-Type: application/json; charset=UTF-8' -d '@-' -- 'https://iid.googleapis.com/iid/v1:batchAdd' << $$$
2020-12-02T16:06:24.455Z|2|ERROR|fcm-demo|c5230eb4f07f582a,9b72559f0d3b8e39,true,|9|task-2|c.a.a.fcm-demo.client.FirebaseClient|Subscribe to topic [topic-0019] - failed with error code [UNKNOWN], messaging error code [null], message [Unknown error while making a remote service call: Connection reset]
我不明白我可以获得访问令牌但无法调用子/取消订阅 API
笔记:
- 网络应该没问题,因为我得到了访问令牌
- 自我证书可能不会发布,因为我可以与 OAuth API 通信以获取令牌(不确定,因为 OAuth 与 iid google 实例可能需要不同的 TLS)
环境/库:
- 春季启动 2.1.18
- firebase-admin.version。7.0.1
解决方案
我已经解决了这个问题。
与防火墙相关的问题,我什至打开了所有但不工作,但是当我添加 2 个 googleapis 的 URL(OAuth 和 iid.googleapis.com)时。有用。
但我仍然不确定为什么我可以调用 OAuth 但 iid
谢谢你们
推荐阅读
- typescript - 如何根据查询投影定义类型
- python - 如何在具有属性层次结构的 DSL 查询中添加权重
- mysql - MYSQL:停止 IFNULL 返回 null 的“空”行
- python - 在没有原型和标头的情况下,如何在 Python 中查找嵌入对象的数据类型
- reactjs - 从 React-Table 中的一行获取信息/数据/值
- python - 为 plotly 的 Figure show 方法定义全局配置值
- c++ - 为什么在使用 FFTW 将(2d)IDFT 转换为 DFT 时,频域中的数据会“镜像”?
- service - 使用 PATCH 方法更新 SAP BUSINESS ONE 服务层上的 salesOrderLines 时出现问题
- html - 使用悬停图像更改制作一排图像的更清洁方法?
- google-apps-script - Google 脚本无法写入/读取 Google 工作表并为 getValue() 提供错误“异常:输入数字”