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
Регистрация получателя для получения 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, выбирая пользователей, но не попадаю на устройство.
Пожалуйста, дайте мне знать, если где-то я ошибаюсь.
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();
}
}
Надеюсь, что это поможет другим, если они получат ту же проблему.