вызвать mixpanel с помощью jquery ajax

Мне нужно использовать Mixpanel Data Export API с помощью jQuery.
В соответствии с этим: Как Я использую API mixpanel? и в соответствии с 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=..., я получаю правильные данные.

Что не так с моим кодом?


person Naor    schedule 15.01.2013    source источник


Ответы (1)


В вашем коде нет ничего плохого.

Параметр callback работает для других конечных точек, таких как .../events/top и .../funnels/list, но эта ошибка возвращается для этой конкретной конечной точки engage.

Вам придется поднять это как проблему с Mixpanel, что эта конечная точка не поддерживает обратные вызовы JSONP.

Несколько сбивает с толку тот факт, что вы можете опубликовать данные, используя другую конечную точку engage, следуя инструкциям на этой странице: https://mixpanel.com/docs/people-analytics/people-http

Вот пример, который работает с этой конечной точкой:

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.

person mccannf    schedule 15.01.2013
comment
Спасибо, вы мне помогли! Есть ли способ обновить свойства пользователя без изменения свойства «Последнее посещение»? (Мне нужно синхронизировать данные пользователя с моей БД). Есть идеи? - person Naor; 16.01.2013