2013-01-15 6 views
2

jQuery를 사용하여 mixpanel 데이터 내보내기 API를 사용해야합니다. How can I use mixpanel API? 및 mixpanel에 따라 : 이에 따라
jquery ajax를 사용하여 mixpanel 호출

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

을하지만, 그 결과로 나는 결과로 오류가 발생합니다 : https://mixpanel.com/docs/api-documentation/data-export-api#libs-js, 나는 이것을 사용할 수 있습니다 내가 아는

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

그 URL과 http://mixpanel.com/api/2.0/engage/?api_key=...&expire=...&sig=...에서 브라우저를 열면 정확한 데이터를 얻었습니다.

내 코드에 어떤 문제가 있습니까?

답변

4

코드에 아무런 문제가 없습니다.

callback 매개 변수는 .../events/top.../funnels/list 같은 다른 엔드 포인트에 대한 작동하지만,이 오류는이 특정 engage 엔드 포인트에 대한 반환됩니다.

이 엔드 포인트가 JSONP 콜백을 지원하지 않는다는 점을 Mixpanel의 문제로 제기해야합니다. 다소 혼동

을 수행 할 수 있습니다 이 페이지의 지시에 따라, 다른 engage 엔드 포인트를 사용하여 포스트 데이터 :

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); 
}); 

: 여기 https://mixpanel.com/docs/people-analytics/people-http-specification-insert-data

이 엔드 포인트와 함께 작동 예입니다 단지 코드가 engage이 아닌 질문에 제공 한 링크의 다른 끝점에서 작동해야합니다.

+0

감사합니다. Last Seen 속성을 변경하지 않고 사용자 속성을 업데이트 할 수있는 방법이 있습니까? (내 DB에서 사용자의 데이터를 동기화해야합니다.) 어떤 생각? – Naor

관련 문제