Push-уведомление MixPanel не получено

Я настроил в консоли MiXPanel все, что упоминается в Документация по push-уведомлениям MixPanel. Я только что потратил 2 дня на то, чтобы найти нужный в Google, а также в Документах MixPanel.

Вот мой код

private void initMixPanelForPush() {
    try
    {
        MixpanelAPI mMixpanel = MixpanelAPI.getInstance(this, ConstantsLib.MIXPANEL_PROJECT_ID_TOKEN);
        MixpanelAPI.People people = mMixpanel.getPeople();
        people.initPushHandling(ConstantsLib.PROJECT_NUMBER);
        people.identify(AppSharedPrefs.getInstance(context).getUserId());
        people.setPushRegistrationId(AppSharedPrefs.getInstance(context).getDeviceToken());
        people.showNotificationIfAvailable(this);
        AppController.getInstance().getAnalyticInstance().getAnalyticsContext().putDeviceToken(AppSharedPrefs.getInstance(context).getDeviceToken());
    }
    catch (Exception ex)
    {
        ex.printStackTrace();
    }
}

Переменная, которую я использовал:

  • MIXPANEL_PROJECT_ID_TOKEN: я получил его из MixPanel ProjectSetting-> Management-> Token.

  • PROJECT_NUMBER: номер_проекта из файла google-service.json.


Регистрация Receiver для получения push-уведомлений.

AndroidManifest.xml

    <receiver
        android:name="com.mixpanel.android.mpmetrics.GCMReceiver"
        android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="my_package _name" />
        </intent-filter>
    </receiver>

Отправка идентификационных данных в сегмент. (здесь добавляется токен устройства)

Traits traits = new Traits();
traits.putName(basicDetails.getFullName());
traits.putEmail(basicDetails.getContactEmail());
traits.putPhone(basicDetails.getContactNumber());
        traits.putValue("userId", basicDetails.getUserId());
        traits.putValue("android_devices", AppSharedPrefs.getInstance(context).getDeviceToken());
getAnalyticInstance().identify(AppSharedPrefs.getInstance(this).getUserId(), traits, null);

Я отправляю push из MixPanel, выбирая пользователей, но не попадая на устройство.

Пожалуйста, дайте мне знать, если я где-то ошибся.


person Vishal Chhodwani    schedule 15.12.2017    source источник


Ответы (1)


Я решил эту проблему, теперь я получаю толчок от MixPanel:

Я только что удалил вызов ненужных методов в методе (initMixPanelForPush)

Обновленный метод

private void initMixPanelForPush() {
    try
    {
        MixpanelAPI mMixpanel = MixpanelAPI.getInstance(this, ConstantsLib.MIXPANEL_PROJECT_ID_TOKEN);
        mMixpanel.identify(AppSharedPrefs.getInstance(context).getUserId());

        mMixpanel.getPeople().identify(AppSharedPrefs.getInstance(context).getUserId());
        mMixpanel.getPeople().initPushHandling(ConstantsLib.PROJECT_NUMBER);
    }
    catch (Exception ex)
    {
        ex.printStackTrace();
    }
}

Надеюсь, это поможет другим, если у них возникнет такая же проблема.

person Vishal Chhodwani    schedule 16.12.2017