我多年来一直发送通知,没有任何问题,但突然不起作用。
谷歌的回应是:
com.google.android.gcm.server.InvalidRequestException: HTTP Status Code: 400
我使用的方法是:
@POST
@Path("sms")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.TEXT_PLAIN)
public void sendMensaje(String mensajeJSON){
LOGGER.log(Level.ERROR, "zzz Empieza");
try {
System.out.println("ENVIO: " + "En Server" + "mensajeJSON:" + mensajeJSON);
LOGGER.log(Level.ERROR, "zzz " + "En Server" + "mensajeJSON:" + mensajeJSON);
Mensaje mensaje = new Mensaje().transformJSONStringToMensajeObject(mensajeJSON);
Gson gson = new GsonBuilder().create();
LOGGER.log(Level.ERROR, "zzz " + "orden convertida de JSON");
//TODO get usuario de la base de datos mediante el email
String usuarioEmail = mensaje.getUsuario();
LOGGER.log(Level.ERROR, "zzz usuario: " + usuarioEmail);
DispositivoGestor dispositivoGestor = new DispositivoGestor();
LOGGER.log(Level.ERROR, "zzz empezamos a buscar codigo");
String codigoMovilUsuario = dispositivoGestor.selectCodigoDispositivoByEmail(usuarioEmail);
LOGGER.log(Level.ERROR, "zzz codigo encontrado: " + codigoMovilUsuario);
if(null!=codigoMovilUsuario){
String mensajeString = mensaje.getMensaje();
Sender sender = new Sender( "AIzaSyBwD0z3KU7ShyRsTrP8qeic_KVaaq44CAM"); //TODO HARCODED, pero está bien harcodeado
LOGGER.log(Level.ERROR, "zzz " + "CREAR message");
Message message = new Message.Builder()
.timeToLive(604800)//7 días
.delayWhileIdle(false)
.addData("message",
mensajeString)
.build();
LOGGER.log(Level.ERROR, "zzz " + "INICIO ENVIO");
Result result = sender.send(message, codigoMovilUsuario, 1);
LOGGER.log(Level.ERROR, "zzz " + "FIN ENVIO");
System.out.println(result.toString());
LOGGER.log(Level.ERROR, "zzz " + "result.toString(): " + result.toString());
if(result.toString().contains("error")) {
LOGGER.log(Level.ERROR, "zzz " + "EROOORRR");
System.out.println("return false");
//返回“假”; }LOGGER.log(Level.ERROR, "zzz"+ "确定");
} else {
System.out.println("NO se ha encontrado el código del user para enviar la notificación Push");
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("return true");
LOGGER.log(Level.ERROR, "zzz " + "FIN");
}
我尝试发送的消息是:
Message(timeToLive=604800, delayWhileIdle=false, data: {message={"mExplotacionIdAccess":6200,"mNIF":"E05252317","mNombre":"LA SOLANILLA, T.C","mDireccion":"CAMINO DE AVILA, 4","mTermino":"SAN ESTEBAN DE LOS PATOS","mCEA":"ES052060000014","mTelefono":"651420376","mProvincia":"Ávila","mZona":"VALLE AMBLES","mProvinciaCliente":"sila","mTerminoCliente":"SAN ESTEBAN DE LOS PATOS","mDireccionCliente":"CAMINO Ds, 4","mProvinciaClienteId":"5","mTerminoClienteId":"195","mProvinciaId":"195","mTerminoId":"195","mSituacionPoliza":"ORDEN CREADA MANUALMENTE, NO TIENE SEGURO","mEstadoPoliza":"0","mSeguro":false,"mAvisoBD":"ORDEN CREADA MANUALMENTE, NO TIENE SEGURO","mPlantaId":1,"mPlanta":"SEBERIA CASTELLANA S.L.","mPlaNombre":"SEBERIA CASTELLANA S.L.","mPlaNIF":"B-05150107","mPlaDireccion":"CAMINO DE ÁVILA, 1","mPlaLocalidad":"PRNOS","mPlaProvincia":"s","mPlaRegistro":"011-05-AI11-05","mConductorId":100,"mTranRazon":"CASTELLANA, S.L.","mTranCIF":"s107","mTranAut":"TS.ES.08.050000002","mTranNIF":"s7Y","mTranMat":"4sBMF","mTranPrecinto":"precinto","mTelefono2":"625094253","mTranNombre":"sdsf sdf sfd","mEspecie":"AV","mNumero":1,"mCebo":false,"mId":99905009,"mEstado":"nueva","mFechaRecepcion":"24/04/2019","mHoraRecepcion":"13:23","mFechaRecogida":"06/08/2019","mColorCode":5,"mEstadoPoliza2":"0","mSintomas":false,"mAccesible":true,"mScrapie":false,"mBrucelosis":false,"mTuberculosis":false,"mOtrasEnfermedades":false,"latitud":0.0,"longitud":0.0}})
问题出在哪里???
非常感谢您的回复!对我的英语感到抱歉
最佳答案
我也遇到这个问题,我怀疑这与 Google 弃用和禁用 GCM API 有关
关于java - 突然通知没有从 java 服务器到达 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57373831/