此特定Segment.io的文档和帮助有限且稀疏,因此希望可以在此处提出要求。
对于docs,我(与邮递员一起)向https://api.segment.io/v1/track
和https://api.segment.io/v1/page
端点发送了一些POST请求。请求的结构如下:
curl -X POST \
https://api.segment.io/v1/track \
-H 'Accept: */*' \
-H 'Authorization: My4w3s0m3k3y' \
-H 'Cache-Control: no-cache' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/json' \
-H 'Host: api.segment.io' \
-H 'Postman-Token: 474d7fbe-15af-43d2-b629-61e15945e662,2c3d5fbe-2c09-4fe6-b7ea-a04e3221201b' \
-H 'User-Agent: PostmanRuntime/7.11.0' \
-H 'accept-encoding: gzip, deflate' \
-H 'cache-control: no-cache' \
-H 'content-length: 117' \
-d '{
"userId": "abc123",
"event": "My tests",
"properties": {
"name": "test 1"
}
}'
全部返回200响应和以下消息:
{
"success": true
}
我在这里想念什么?
答案 0 :(得分:0)
您的写入密钥似乎未经过base64编码。对写密钥进行编码时,请记住在编码之前在其末尾添加:
。
此外,对于Authorization key:value,请确保在编码的写密钥之前添加Basic
。因此,您的授权key:value看起来像:
授权:基本{编码写密钥}
来自segment documentation的示例:
在实践中,这意味着将段源写密钥'abc123'作为用户名,添加冒号,然后将密码字段保留为空。 base64编码后,“ abc123:”变为“ YWJjMTIzOg ==”;并以如下方式在授权标头中传递:“授权:基本YWJjMTIzOg ==”。
答案 1 :(得分:0)
我一直在处理相同的问题。 我按托德所说的找到了解决方法。
您应该添加标题random_arr_func = lambda x:[list(np.random.permutation(your_list)) for i in range(2)]
list(b(your_list))
。
因此,您需要查找“细分”源设置并获取写入密钥。 之后,我使用了online base64 encoding tool对我的写密钥进行编码。 最后,您应该将此标头(授权)添加为“基本”和编码后的写入密钥。
您应该能够在细分网页的“调试”面板中看到跟踪的事件。
我希望这会有所帮助!
答案 2 :(得分:0)
您可以尝试使用此代码
const { promisify } = require("util");
var Analytics = require("analytics-node");
var analytics = new Analytics("xxxxxxxxxxxxxxxxxxxxxxx", {
flushAt: 1,
});
const [identify, track] = [
analytics.identify.bind(analytics),
analytics.track.bind(analytics),
].map(promisify);
console.log("user id: ", req.body.event.app_user_id);
let app_user_id = req.body.event.app_user_id;
let period_type = req.body.event.period_type;
let expiration_at_ms = req.body.event.expiration_at_ms;
let ret = "Initial";
try {
await identify({
userId: app_user_id,
traits: {
period_type: period_type,
expiration_at_ms: expiration_at_ms,
},
});
ret = "Done : Sengment done";
} catch (err) {
console.log("err: ", err);
ret = "Error : " + err;
}
return {
rafsan: ret,
};
答案 3 :(得分:-1)
尝试清除浏览器的缓存或使用其他浏览器。我遇到了同样的问题,为我工作。
希望这会有所帮助。