Firebase 发送服务器通知 java
Posted
技术标签:
【中文标题】Firebase 发送服务器通知 java【英文标题】:Firebase send server notification java 【发布时间】:2016-12-28 13:43:37 【问题描述】:所以,我使用Jersey 看到了这个问题。但仍然没有弄清楚如何从我的服务器向订阅主题的用户发送简单的推送通知。 我不明白我的请求有什么问题,因为我正在尝试基于 their examples 构建。
public class OverSLANotifier
public static void main(String[] args) throws Exception, FirebaseException
String rawData = "\"to\": \"/topics/sla\",\"data\": \"message\": \"This is test push notification!\",";
String encodedData = URLEncoder.encode(rawData, "UTF-8");
URL u = new URL("https://fcm.googleapis.com/fcm/send");
HttpURLConnection conn = (HttpURLConnection) u.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "key=AI<redacted>VGB6YwPWrinoz1YFBgdKv4Pgm8s");
conn.setRequestProperty("Content-Type", "application/json");
OutputStream os = conn.getOutputStream();
os.write(encodedData.getBytes());
System.out.println(""+ conn.getResponseCode() + "-->>"+conn.getResponseMessage());
我的客户是properly set,如果我从控制台发送,就可以接收。
响应总是:
401-->>未经授权
【问题讨论】:
【参考方案1】:你的 json 似乎无效:
\"to\": \"/topics/sla\",\"data\": \"message\": \"This is test push notification!\",
对
\"to\": \"/topics/sla\",\"data\": \"message\": \"This is test push notification!\"
同时查看文档:
HTTP 请求中缺少授权标头或语法无效。 作为密钥发送的项目编号无效。 密钥有效,但 FCM 服务已禁用。 请求来自未列入白名单的服务器 在服务器密钥 IP 中。无法验证用于发送消息的发件人帐户。 可能的原因有:
Source
PS:它在你会发现here的文档中也是无效的;)
【讨论】:
以上是关于Firebase 发送服务器通知 java的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Firebase 从我的服务器发送 iOS 推送通知?