0

根据Mixpanel doc,我需要对我的 json 数组进行 base64 处理,然后再将其发送到他们的 API 端点

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

这是我将 dict 转换为 base64 并发送它的 python 代码。我明白了

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

我的问题是它不跟踪任何东西。如果我使用此在线转换器转换相同的字典并手动构建 url,它就可以工作。

所以可能有些东西在我的编码中不起作用,但是什么?

谢谢!

4

1 回答 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字符串

于 2013-02-09T14:48:04.053 回答