这是我的代码:
<?php
namespace App\Services;
use Mixpanel\Mixpanel;
use App\Models\User;
use Illuminate\Support\Facades\Config;
use Illuminate\Contracts\Auth\Authenticatable;
class MixpanelService
{
private \Mixpanel $mixpanel;
public function __construct()
{
$this->mixpanel = \Mixpanel::getInstance(config('services.mix_panel.token'), [
'host'=>'api-eu.mixpanel.com',
]);
}
public function addUser(Authenticatable $user)
{
$this->mixpanel->people->set($user->id, [
'$first_name' => $user->name,
'$email' =>$user->email,
], $ip=0);
}
}
我按照这个教程, https://www.youtube.com/watch?v=Ojl-SXVzCTQ&t=432s 在 10:43 分钟,我按照他的代码操作,但他没有显示第 1 到 5 行中的内容
有人可以帮助我吗?
嘿,我是来自 Mixpanel 支持的 Rishi。虽然我对 Laravel 不太熟悉,但可能的情况是作业本身正在创建一个进程,该进程要么没有被终止(或者至少没有以 SDK 拾取的方式终止),并且队列没有被刷新,所以你也许可以通过调用 flush() 和 people->flush() 发送数据来解决此问题。
需要澄清的是,每次调用 track 或发送人员更新时,PHP SDK 都会对数据进行排队,而不是发送请求,并且默认情况下,当脚本终止时队列会刷新。在这种情况下,该作业可能是一个正在进行的进程,我们没有将其视为已终止,因此永远不会调用刷新函数。但是,当代码有意义时,您可以手动调用flush()(您将需要调用事件和配置文件更新的两个方法)。
进一步的调试步骤是在初始化中启用调试标志,如果正在进行 people->set 调用,该标志将进行记录。如果正在记录调用并且flush()不会导致数据出现在您的项目中,那么我建议您仔细检查您要发送到的项目是否基于EU,以及初始化时的令牌是否匹配。如果您仍然遇到问题,请随时通过 http://mixpanel.com/get-support 与我们联系,我们很乐意调查您可能拥有的任何调试日志。
你是如何让它发挥作用的? 敬请赐教。 谢谢