Как зашифровать полезную нагрузку в Java Admin SDK - PullRequest
0 голосов
/ 20 января 2020

Раньше я использовал GCM, теперь я перешел на FCM. По этой причине прямо сейчас я отправляю сообщение WebPu sh с Firebase Admin SDK. Когда я отправлял webpu sh, клиенты получали уведомление без данных. В соответствии с текстами, которые я прочитал, я должен кодировать полезную нагрузку с помощью JWT Однако я не смог найти способ encyrpt.

У меня есть clientAuthSecret, clientPublicKey и конечная точка. Мне нужно ваше руководство.

@Override
public WebPushResponse sendMessageToMultipleUsers(List<String> registrationTokens) throws IOException {

    FirebaseOptions options = new FirebaseOptions.Builder()
            .setCredentials(GoogleCredentials.fromStream(new ClassPathResource(firebaseConfigPath).getInputStream())).build();
    if (FirebaseApp.getApps().isEmpty()) {
        FirebaseApp.initializeApp(options);
        logger.info("Firebase application has been initialized");
    }

    MulticastMessage message = MulticastMessage.builder()
            .setWebpushConfig(WebpushConfig.builder()
                    .setNotification(new WebpushNotification("$GOOG up 1.43% on the day",
                            "$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.", "https://my-server/icon.png"))
                    .build())
            .addAllTokens(registrationTokens).build();
    BatchResponse response = null;
    try {
        response = FirebaseMessaging.getInstance().sendMulticastAsync(message).get();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ExecutionException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    if (response != null && response.getFailureCount() > 0) {
        List<SendResponse> responses = response.getResponses();
        List<String> failedTokens = new ArrayList<>();
        for (int i = 0; i < responses.size(); i++) {
            if (!responses.get(i).isSuccessful()) {
                // The order of responses corresponds to the order of the registration tokens.
                failedTokens.add(registrationTokens.get(i));
            }
        }

        System.out.println("List of tokens that caused failures: " + failedTokens);
    }

    return null;
}
...