为Mixpanel API像素追踪器对JSON进行base64编码

0 投票
1 回答
1263 浏览
提问于 2025-04-17 15:20

根据Mixpanel的文档,在把我的json数组发送到他们的API接口之前,我需要先把它转换成base64格式。

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

根据文档,我需要这样发送数据:

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

这是我用Python写的代码,用来把字典转换成base64格式并发送出去。我得到的代码是:

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

我的问题是,这样发送后什么都没有被追踪到。如果我用这个在线转换工具把同样的字典转换一下,然后手动构造URL,就能正常工作。

所以可能是我的编码过程中出了问题,但我不知道是什么原因。

谢谢!

1 个回答

2

不确定这个问题里是不是打错字,不过应该不是这样:

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

而是应该是:

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

因为%d是用来表示数字的,而不是像%s那样表示字符串。

撰写回答