Biz, FCM için sunucumuzda Legacy HTTP Server Protocol ürününü başarıyla kullanıyoruz. Bugün güncellemek istedim FCM HTTP v1 API."Yeni" Firebase Bulut Mesajlaşma API'sı ile 403 yanıt alın
ben o step by step yaptım ve Sunucu isteği çağırdığında, biz bu yanıtı:
URL url = new URL("https://fcm.googleapis.com/v1/projects/[projectid]/messages:send");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Authorization", "Bearer " + getAccessToken());
conn.setRequestProperty("Content-Type", "application/json");
OutputStream outputStream = conn.getOutputStream();
outputStream.write(req.getBytes("UTF-8"));
// Exception happen here
InputStream inputStream = conn.getInputStream();
getAccessToken():
private static String getAccessToken() throws IOException {
GoogleCredential googleCredential = GoogleCredential
.fromStream(new FileInputStream(ClientApiServlet.context.getRealPath("/WEB-INF/[projectid].json"))) .createScoped(Arrays.asList("https://www.googleapis.com/auth/firebase.messaging"));
googleCredential.refreshToken();
return googleCredential.getAccessToken();
}
Server returned HTTP response code: 403 for URL: https://fcm.googleapis.com/v1/projects/[projectid]/messages:send
Bu sunucu kodudur
Json dosyasını, firebase bulutunun adminsdk sayfasından indirdim.
aynı projectid Tüm
...sunucuda bu 2 kütüphanelerini güncelleme:
google-http-client-jackson2-1.23.0.jar
google-oauth-client-1.23.0.jar
getAccessToken() Methode bir accesstoken döndürdü: "ya29.c.Elr0BAa ... "
Sanırım küçük bir adımı özlüyorum, belki yardımcı olabilirsiniz? Şimdiden teşekkürler!
Düzenleme: Bu arterpa kokan şimdi çalışıyor! Tekrar teşekkürler!
Bundan sonra 400 hata var, bu yüzden istek verilerinde bir şeylerin yanlış olduğunu:sorun, biz dizeleri tüm data{...}
değerlerini dönüşüm gerçekleştirenler edildi. Eski protokol ile bir sorun değildi, ancak FCM HTTP v1 API ile dizeleri olmalı! ;)
Daha önce bu soruna rastladım ama düzeltdim. Yeni bir FCM HTTP v1 API'sini kullanabilmem için 403 numaralı bir hesabım var. Daha önce eski HTTP protokolü için gerekli olmayan, önce Google API kontrol panelinizde FCM API'sini etkinleştirmeniz gerekiyor. – arterpa
Açıklama makul. Kısa cevapların otomatik olarak gözden geçirilmek üzere işaretlendiğini ve ilk bakışta en azından yeterli görünmediğini unutmayın. Yorumunuz belirtildi ve bayrak kaldırıldı. – DiskJunky
Teşekkür ederim! FCM API'sı otomatik olarak etkinleştirildi, ancak FCM Messaging API'si olmadı. https://console.developers.google.com/apis/library/fcm.googleapis.com/ – nickromano