Pregunta

According to Mixpanel doc, I need to base64 my json array before sending it to their API endpoint

json = {"event": "e-mail opened", 
        "properties": {
        "distinct_id": "28224", 
        "token": "494f5d201963457e632d463d1d4745e4", 
        "time": int(time.time()), 
        "campaign": "gameweek 27"
            }
    }

Per the doc, I need to send it like that

http://api.mixpanel.com/track/?data=[BASE_64_JSON_EVENT]&ip=1&img=1

Here's my python code to convert the dict to base64 and send it. I get

data = base64.b64encode(json.dumps(json)) url = 'http://api.mixpanel.com/track/?data=%d&ip=1&img=1'%data requests.get(url)

My problem is that it doesn't track anything. If I convert the same dict using this online converter and construct the url manually it work.

So there's probably something who's not working in my encoding but what?

Thanks!

¿Fue útil?

Solución

Not sure if it is a typo in the question, but instead of:

url = 'http://api.mixpanel.com/track/?data=%d&ip=1&img=1'%data

it should be

url = 'http://api.mixpanel.com/track/?data=%s&ip=1&img=1'%data

as the %d expects a number, not a string, like %s does

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top