Отслеживание пользователей Mixpanel в моем приложении PHP CodeIgniter

У меня есть это приложение, работающее на платформе PHP CodeIgniter. Я пытаюсь настроить отслеживание людей с Mixpanel библиотека. Так что я могу знать пользователей, которые вошли в систему и когда они это сделали.

Я установил файлы этой библиотеки в свою папку application / библиотеки, а затем вызвал ее на своем контроллере login.php следующим образом:

public function __construct(){
parent::__construct();
$this->load->model('login_model');
$this->load->library('form_validation');
// Mixpanel Config
$this->load->library('Mixpanel');
$this->Mixpanel->mp = Mixpanel::getInstance("9966a1a78b347f556a7cc0c9f298502b", array("use_ssl" => false));

}

После этого в этот же контроллер (функция index) добавлено следующее:

// Sends login information to Mixpanel
$this->Mixpanel->mp->people->identify($aluno[0]->aluno_id, array(
'$first_name'       => $aluno[0]->aluno_primeiro_nome,
'$last_name'        => $aluno[0]->aluno_sobrenome,
'$email'            => $aluno[0]->aluno_email,
));

Вся функция такова:

public function index(){
$this->form_validation->set_error_delimiters('<p class="default_error">', '</p>');
$this->form_validation->set_rules('user_email', 'E-mail', 'trim|required|valid_email|xss_clean');
$this->form_validation->set_rules('user_password', 'Senha', 'trim|required|xss_clean');
$this->form_validation->set_message('required', 'Campo de preenchimento obrigatório');
$this->form_validation->set_message('valid_email', 'Por favor, digite um e-mail válido');
if ($this->form_validation->run()){
if($this->login_model->authenticate($this->input->post('user_email'), $this->input->post('user_password'))){
$this->load->model('aluno_model');
$aluno = $this->aluno_model->getStudentbyEmail($this->input->post('user_email'));
if(!empty($aluno[0]->aluno_thumb_img)) :
$login = array(
'id' => $aluno[0]->aluno_id,
'primeiro_nome' => $aluno[0]->aluno_primeiro_nome,
'sobrenome' => $aluno[0]->aluno_sobrenome,
'senha' => $aluno[0]->aluno_senha,
'email' => $aluno[0]->aluno_email,
'thumb' => base_url('student_images/'.$aluno[0]->aluno_thumb_img),
'large' => base_url('student_images/'.$aluno[0]->aluno_large_img),
'status' => $aluno[0]->aluno_status
);
else :
$login = array(
'id' => $aluno[0]->aluno_id,
'primeiro_nome' => $aluno[0]->aluno_primeiro_nome,
'sobrenome' => $aluno[0]->aluno_sobrenome,
'senha' => $aluno[0]->aluno_senha,
'email' => $aluno[0]->aluno_email,
'thumb' => base_url('student_images/'.$aluno[0]->aluno_large_img),
'large' => base_url('student_images/'.$aluno[0]->aluno_large_img),
'status' => $aluno[0]->aluno_status
);
endif;

// Sends login information to Mixpanel
$this->Mixpanel->mp->people->identify($aluno[0]->aluno_id, array(
'$first_name'       => $aluno[0]->aluno_primeiro_nome,
'$last_name'        => $aluno[0]->aluno_sobrenome,
'$email'            => $aluno[0]->aluno_email,
));

$this->session->set_userdata('user', $login);

if($this->input->post('url_checkout')){
$this->set_flashdata('loginSuccess', 'loginSuccess', $this->input->post('url_checkout'));
}else{
$this->set_flashdata('loginSuccess', 'loginSuccess', base_url('aluno'));
}
}else{
$this->set_flashdata('loginFailed', 'loginFailed', $this->input->post('url'));
}
}else{
$errors = array('user_email'=>form_error('user_email'), 'user_password'=>form_error('user_password'));
$this->set_flashdata('loginError', $errors, $this->input->post('url'));
}

}

Mixpanel получает информацию для входа в систему (потому что я вижу ее на панели инструментов), но мое приложение возвращает несколько ошибок:

Обнаружена ошибка PHP

Серьезность: Предупреждение

Сообщение: отсутствует аргумент 1 для Mixpanel :: __ construct (), вызван в /Applications/MAMP/htdocs/descola-rep/system/core/Loader.php в строке 1099 и определен

Имя файла: библиотеки / Mixpanel.php

Номер строки: 138

Обнаружена ошибка PHP

Серьезность: Уведомление

Сообщение: неопределенная переменная: токен

Имя файла: библиотеки / Mixpanel.php

Номер строки: 140

Обнаружена ошибка PHP

Серьезность: Уведомление

Сообщение: неопределенная переменная: токен

Имя файла: библиотеки / Mixpanel.php

Номер строки: 141

Обнаружена ошибка PHP

Серьезность: Предупреждение

Сообщение: создание объекта по умолчанию из пустого значения

Имя файла: controllers / login.php

Номер строки: 11

Я был бы очень рад, если бы кто-нибудь дал мне подсказку, где я иду не так. Я все еще учусь бэкэнд-разработке, я не могу понять это.

ура

1

Решение

Итак, с большой помощью ребят из Mixpanels (кстати, они классные), я смог найти это решение. Для тех, кто когда-либо сталкивается с этой же проблемой, вот что:

1) Установите библиотеки файлы на приложение / библиотеки / mixpanel_lib

2) Создайте новый php-файл в приложении / библиотеке под названием Mixpanel_wrapper.php. Там вы получите путь к своей библиотеке, установите свой токен и создадите некоторые функции. Файл ниже уже имеет некоторые функции, такие как track_something, people_set и indentify. Для получения дополнительной информации просто добавьте функции здесь.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require 'application/libraries/mixpanel_lib/Mixpanel.php';

class Mixpanel_wrapper {

private $mixpanel = false;

public function __construct(){
$mp = $this->getMixpanel();
$mp = Mixpanel::getInstance("PLACE_YOUR_TOKEN_HERE");
$this->setMixpanel($mp);
}

public function getMixpanel(){ return $this->mixpanel; }
public function setMixpanel($obj){ $this->mixpanel =  $obj; }

public function track_something($event = '', $properties = array()){
$mp = $this->getMixpanel();

$mp->track($event, $properties);

}// track_something function ends

public function people_set($distinct_id = '', $properties = array()){

$mp = $this->getMixpanel();

$mp->people->set($distinct_id, $properties);

}// people_set function ends

public function identify($distinct_id){

$mp = $this->getMixpanel();

$mp->identify($distinct_id);

}// identify function ends

}/* End of file mixpanel_wrapper.php */

3) Загрузите библиотеку там, где вам нужно ее использовать. Как этот пример на моем контроллере login.php:

public function __construct(){
parent::__construct();
$this->load->model('login_model');
$this->load->library('form_validation');
$this->load->library('mixpanel_wrapper');
}

4) Отслеживать что-то!

// Sends login information to mixpanel
$this->mixpanel_wrapper->people_set($student[0]->student_id, array(
'$first_name'       => $student[0]->student_first_name,
'$last_name'        => $student[0]->student_last_name,
'$email'            => $student[0]->student_email,
));
$this->mixpanel_wrapper->identify($student[0]->student_id);
$this->mixpanel_wrapper->track_something('Logged in');
// ends mixpanel

Я думаю это все. 🙂

3

Другие решения

кажется, что проблема с интеграцией вашей библиотеки в CodeIgniter. Может быть, эта ссылка поможет: https://github.com/bpartridge83/codeigniter-bootstrap/blob/master/application/libraries/Mixpanel.php

1

По вопросам рекламы [email protected]