Нет gcm для последующих сообщений в беседе

Я использую intercom.io для отправки сообщений своим клиентам. Я могу получить gcm (с уведомлением) от внутренней связи просто отлично, ТОЛЬКО если сообщение, которое я отправил, является первым сообщением в разговоре. Для последующих сообщений в беседе я ничего не получаю. Я поместил журнал в свой onMessageReceived(), но он ничего не получил, кроме случаев, когда сообщение является первым сообщением в беседе.

public class MyGcmListenerService extends GcmListenerService {    

    @Override
    public void onMessageReceived(String from, Bundle data) {

        MessageUtils.log("onMessageReceived data is " + data);
    }
}

Есть идеи, что мне не хватает?

Если вы не поняли, что я пытаюсь сказать, вот что я имел в виду:

  1. Я выбираю клиента из своей веб-панели intercom.io (или как там она называется)
  2. Затем я нажимаю кнопку «Сообщение», чтобы отправить сообщение клиенту.
  3. Заказчик получил мое сообщение вместе с уведомлением.
  4. Теперь я отправляю клиенту еще одно сообщение в том же разговоре, что и раньше ... но теперь клиент больше не будет получать сообщения gcm от интеркома.

person imin    schedule 30.05.2016    source источник
comment
Я не знаком с внутренней связью, однако, если вы сейчас используете GCM (FCM) и Android, возможно, вам стоит попробовать Firebase Cloud Messaging. firebase.google.com/docs/cloud-messaging/android/client   -  person Arthur Thompson    schedule 31.05.2016


Ответы (1)


Да, сейчас поддерживает. проблема с github теперь закрыта, и они добавили ее в 3.0.3.

У них есть проект git hub для FCM, но в нем отсутствует несколько кодов. Код доступен на этой странице github и выглядит следующим образом.

если вы расширяете FirebaseMessagingService в классе своего собственного приложения? тогда вам нужно будет вручную передать push на интерком.

private final IntercomPushClient intercomPushClient = new IntercomPushClient();
  public void onMessageReceived(RemoteMessage remoteMessage) {
      Map<String, String> message = remoteMessage.getData();
      if (intercomPushClient.isIntercomPush(message)) {
          intercomPushClient.handlePush(getApplication(), message);
      } else {
          //DO HOST LOGIC HERE
     }
 }
person Akhil Dad    schedule 07.09.2016