Я впервые работаю с firebase, и меня немного смущает использование облачных сообщений.
Среда:
У меня есть Spring Microservice, который должен отправлять сообщения (данные, а не уведомления) приложениям по их токену. (независимость от платформы). В качестве протокола я хочу использовать рекомендованное Http v1.
Я создал учетную запись Firebase, добавил тестовый проект, и теперь я хочу поместить туда данные. Насколько я прочитал, нет способа увидеть сообщение, отправленное для отладки?
У меня нет приложения для тестирования потока, потому что он будет разработан externaly.
Текущее поведение:
I just want to create a first test message. Therefor I use the following code.
// myProject from settings- general->ProjectID
String FIREBASE_API_URL = "https://fcm.googleapis.com/v1/projects/myProject/messages:send";
// From settings->cloud-messaging
String FIREBASE_SERVER_KEY = "newServerKey";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.set("Authorization", "Bearer" + FIREBASE_SERVER_KEY);
httpHeaders.set("Content-Type", "application/json");
JSONObject json = new JSONObject();
JSONObject message = new JSONObject();
message.put("title","Hallo");
message.put("body","TEst");
json.put("data", message);
//I was hoping that this has not to be a valid token for testing.
json.put("to", "receiverFcmKey");
System.out.println("Sending :" + json.toString());
HttpEntity<String> httpEntity = new HttpEntity<>(json.toString(), httpHeaders);
for(int i =0; i<1; i++) {
System.out.println("Count:"+ i);
System.out.println(restTemplate.postForObject(FIREBASE_API_URL, httpEntity, String.class));
}
Здесь я получаю сообщение об ошибке:
Exception in thread "main" org.springframework.web.client.HttpClientErrorException$Unauthorized: 401 Unauthorized: [no body]
Здесь Я прочитал что я мог бы включить аутентификацию в моих настройках Google API.
ВОПРОС: Я не знаю, где я ошибся. Мне действительно нужно сначала включить API в настройках Google? Неправильно ли настроена аутентификация в шапке? (Я пробовал с пустым после Bearer) Я думал, что процесс аутентификации будет выполняться с помощью ключа сервера.
Это всего лишь настройка тестовой среды, и этого было бы достаточно, чтобы убедиться, что процесс аутентификации работает и сообщения отправляются.