0

这个特定Segment.io的文档和帮助是有限且稀疏的,所以我希望可以在这里提问。

我刚刚设置了 Segment.io 工作区和 HTTP API 源 在 Segment.io UI 中可见的 HTTP API 源

根据文档,我向https://api.segment.io/v1/trackhttps://api.segment.io/v1/page端点发送了一些 POST 请求(使用 Postman)。请求的结构如下:

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
}

但是,当我到达仪表板时,没有记录任何事件。 在 Segment.io UI 上看到的扁平事件图

调试器也是空的 带有文本的空调试器页面

我在这里想念什么?

4

4 回答 4

0

我一直在处理同样的问题。正如托德所说,我找到了解决方案。

您应该添加一个标题Authorization: Basic + base64 encoding write key

因此,您查找 Segment source 设置并获取写入密钥。之后,我使用了一个在线 base64 编码工具来编码我的写密钥。最后,您应该使用“基本”和编码的写入密钥添加此标头(授权)。

您应该能够在 Segment 网页的 Debugging 面板中看到跟踪的事件。

我希望这有帮助!

于 2020-04-16T15:25:52.013 回答
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,
  };
于 2020-07-17T07:20:07.473 回答
0

看起来您的写入密钥不是 base64 编码的。当您对写入密钥进行编码时,请记住:在其末尾添加 ,然后再对其进行编码。

此外,对于授权键:值,请务必Basic在编码的写入键之前添加。所以你的 Authorization key:value 看起来像:

授权:基本{编码写入密钥}

段文档中的一个示例:

实际上,这意味着将 Segment source Write Key 'abc123' 作为用户名,添加一个冒号,然后将密码字段留空。base64编码后'abc123:'变成'YWJjMTIzOg==';这在授权标头中传递,如下所示:'Authorization: Basic YWJjMTIzOg=='。

于 2019-09-12T05:56:32.450 回答
-1

尝试清除浏览器的缓存或使用其他浏览器。我有同样的问题并为我工作。

希望这可以帮助。

于 2019-07-11T16:51:43.660 回答