【问题标题】:call mixpanel using jquery ajax使用 jquery ajax 调用 mixpanel
【发布时间】:2013-05-18 02:06:39
【问题描述】:

我需要通过 jQuery 使用 mixpanel 数据导出 API。
根据这个:How can I use mixpanel API? 和根据 mixpanel:https://mixpanel.com/docs/api-documentation/data-export-api#libs-js,我可以使用这个:

$.getJSON('http://mixpanel.com/api/2.0/engage/?callback=?', {
        api_key: apiKey,
        expire: expire,
        sig: sig
    },
    function (result) {
        alert(result);
    }
);

但结果我得到一个错误:

"unknown param: callback
for params: {'callback': 'jQuery18208090281161325954_1358248117308', 'project_id': 160130}"

我知道 url 和我的数据是正确的,因为当我在 http://mixpanel.com/api/2.0/engage/?api_key=...&expire=...&sig=... 中打开浏览器时,我得到了正确的数据。

我的代码有什么问题?

【问题讨论】:

    标签: jquery ajax mixpanel


    【解决方案1】:

    您的代码没有问题。

    callback 参数适用于.../events/top.../funnels/list 等其他端点,但对于这个特定的engage 端点会返回此错误。

    您必须将此作为 Mixpanel 的问题提出,该端点不支持 JSONP 回调。

    有点令人困惑的是,您可以按照此页面上的说明使用不同的engage 端点发布数据: https://mixpanel.com/docs/people-analytics/people-http-specification-insert-data

    这是一个适用于此端点的示例:

    var mixpanel_token = "<insert token for your mixpanel project here>";
    var myData = { "$set": {         
                      "$first_name": "John", 
                      "$last_name": "Smith" },
                    "$token": mixpanel_token, 
                    "$distinct_id": "99999", 
                    "$ip": "0" };
    
    var dataEncodedToBase64 = window.btoa(JSON.stringify(myData));
    
    var path = 'http://api.mixpanel.com/engage?callback=?';
    
    $.getJSON(path, { 'data': dataEncodedToBase64, 'verbose': 1 }, function(json) {
            console.log("Success");
            console.log(json);
    });
    

    请注意,您的代码应该适用于您在问题中提供的链接中的其他端点,而不是 engage

    【讨论】:

    • 谢谢,你帮了我!有没有办法在不更改 Last Seen 属性的情况下更新用户属性? (我需要从我的数据库同步用户的数据)。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多