2

我需要使用 jQuery 使用 mixpanel 数据导出 API。
据此:如何使用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=...我得到了正确的数据。

我的代码有什么问题?

4

1 回答 1

4

您的代码没有任何问题。

callback参数适用于其他端点,例如.../events/topand .../funnels/list,但此特定engage端点会返回此错误。

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

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

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

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.

于 2013-01-15T15:59:00.373 回答