2016-05-19 5 views
0

Я использую gcm для отправки уведомлений на одно или несколько устройств. Однако я постоянно получаю сообщение об ошибке: «несоответствующий идентификатор отправителя».Google может сообщить «ошибка»: «MismatchSenderId»?

Вот мой код:

public static void post(String apiKey){ 
    try{ 
     // prepare JSON 
     JSONObject jGcmData = new JSONObject(); 
     JSONObject jData = new JSONObject(); 

     jData.put("message", "{good luck}"); 

     jGcmData.put("to","token ID"); 

     jGcmData.put("data", jData); 



     // Create connection to send GCM Message request. 
     URL url = new URL("https://android.googleapis.com/gcm/send"); 


     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setRequestProperty("Authorization", "key=" + apiKey); 
     conn.setRequestProperty("Content-Type", "application/json"); 
     conn.setRequestMethod("POST"); 
     conn.setDoOutput(true); 

     // Send GCM message content. 
     OutputStream outputStream = conn.getOutputStream(); 
     outputStream.write(jGcmData.toString().getBytes()); 

     // Read GCM response. 
     InputStream inputStream = conn.getInputStream(); 
     String resp = IOUtils.toString(inputStream); 
     System.out.println(resp); 
    } catch (IOException e) { 
     System.out.println("Unable to send GCM message. "+e); 
    } 
} 

Кроме того, когда я использовал jGcmData.put("to","/topics/foo-bar"); вместо jGcmData.put("to","token ID");, уведомление может быть отправлено успешно. Однако то, что я хочу, - это нажать уведомление выбранным устройствам.

ответ

0

Для несогласованного отправителя ID:

Попробуйте удалить приложение и запустить его again.This очистит все созданные ключи App.

error:MismatchSenderId

Регистрационная маркер привязан к определенной группе отправителей. Когда клиентское приложение регистрируется для GCM, оно должно указать, какие отправители могут отправлять сообщения. Вы должны использовать один из этих идентификаторов отправителя при отправке сообщений в клиентское приложение. Если вы переключитесь на другого отправителя, существующие токены регистрации не будут работать.

Согласно этому SO answer, "" mismatchSenderId происходит потому, что приложение в одном устройстве вошли с разными ключами. ""

для темы Подписка/Topic Отправка

Этот может быть связано с этим Subscribe to topics suddenly throws "java.io.IOException: InternalServerError", в нем говорится, что «Мы выявили проблему в нашей поддержке, которая повлияла на небольшой процент подписки на темы за последние 24 часа. Проблема уже исправлена, и подписки должны корректно работать на всех устройствах ».

Надеюсь, это поможет вам.

Смежные вопросы