如何为 Matomo 构建正确的 HTTP API 调用

How to build a proper HTTP API call for Matomo

我刚开始使用 API,但一直在阅读它。我的任务是将数据从 API 导入到 CSV 文件中。我创建了一个有效的导入字符串(来自一个示例)。尽管阅读了 documentation 页面和一个工作示例,但我还没有得到我需要工作的实际报告。

这是有效的字符串:

myURL = "https://admin.metrics.mysite.com/?module=API" _
& "&method=API.get&idSite=9&period=day&date=last30&format=tsv&translateColumnNames=1" _
& "&token_auth=" & myToken

我需要的是所有已下载文件的月度报告。

这是我最后一次尝试(已经尝试过许多变体):

Dim myToken As String
myToken = "secrettokenhere"
myURL = "https://admin.metrics.mysite.com/?module=API" _
    & "&method=API.getDownloads" _
    & "&idSite=9" _
    & "&period=day" _
    & "&date=2018-11-05" _
    & "&segement=''" _
    & "&expanded=''" _
    & "&idSubtable=''" _
    & "&flat=''" _
    & "&format=tsv" _
    & "&filter_limit=10" _
    & "&token_auth=" & myToken

当我运行这个时,我返回的错误消息是这样的:

Error: The method 'getDownloads' does not exist or is not available in the module '\Piwik\Plugins\API\API'.

我被困在最基本的事情上...我使用的 get 方法是否正确?我缺少参数吗?我做错了什么?

感谢任何指点!

如您在 API reference 中所见,该方法未被调用 API.getDownloads,而是 Actions.getDownloads.

现在我更了解您的问题,可以提供更多详细信息:

您正在使用的 API 端点 (API.get) 为您提供了每天的下载量,我认为这不是您想要的。

获得正确端点的最简单方法(除了阅读 API reference)是在 Matomo UI 中打开您需要的报告。 如果您想要所有下载的列表,这将是 Behaviour -> Downloads 报告。之后您可以单击 table 下方的导出图标,它会显示正确的 API url.

在你的情况下现在是 ?module=API&method=Actions.getDownloads

如果你不想要一个目录,而是一个简单的列表,你可以添加 &flat=1: ?module=API&method=Actions.getDownloads&flat=1.

这应该 return 您想要的(也许还添加 &filter_limit=-1 以获得无限结果)。