在 Laravel 中使用 Mixpanel API,我认为我的代码缺少一些东西,但我不知道是什么

问题描述 投票:0回答:2

这是我的代码:

<?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 行中的内容

有人可以帮助我吗?

php laravel mixpanel
2个回答
0
投票

嘿,我是来自 Mixpanel 支持的 Rishi。虽然我对 Laravel 不太熟悉,但可能的情况是作业本身正在创建一个进程,该进程要么没有被终止(或者至少没有以 SDK 拾取的方式终止),并且队列没有被刷新,所以你也许可以通过调用 flush() 和 people->flush() 发送数据来解决此问题。

需要澄清的是,每次调用 track 或发送人员更新时,PHP SDK 都会对数据进行排队,而不是发送请求,并且默认情况下,当脚本终止时队列会刷新。在这种情况下,该作业可能是一个正在进行的进程,我们没有将其视为已终止,因此永远不会调用刷新函数。但是,当代码有意义时,您可以手动调用flush()(您将需要调用事件和配置文件更新的两个方法)。

进一步的调试步骤是在初始化中启用调试标志,如果正在进行 people->set 调用,该标志将进行记录。如果正在记录调用并且flush()不会导致数据出现在您的项目中,那么我建议您仔细检查您要发送到的项目是否基于EU,以及初始化时的令牌是否匹配。如果您仍然遇到问题,请随时通过 http://mixpanel.com/get-support 与我们联系,我们很乐意调查您可能拥有的任何调试日志。


0
投票

你是如何让它发挥作用的? 敬请赐教。 谢谢

© www.soinside.com 2019 - 2024. All rights reserved.