0

我正在尝试向 Piwik 跟踪 api (/piwik.php) 发送批量请求,但遇到了问题。当我发送请求(通过 ajax、curl 和 fiddler2 来自 PHP 脚本)时,我收到以下信息:

Debug enabled - Input parameters:<br/>array ( )
token_auth is authenticated!
Loading plugins: { Provider,Goals,UserCountry }
Current datetime: 2013-05-02 16:02:27
The request is invalid: empty request, or maybe tracking is disabled in the config.ini.php via record_statistics=0

我的帖子是这样的:

{"requests":["%3Fidsite%3D1%26url%3Dhttp%3A%2F%2Fexample.org%26action_name%3DTest+bulk+log+Pageview%26rec%3D1"],"token_auth":"mytokenhere"}

这是直接来自他们网站的示例。我确保将内容类型设置为“内容类型:应用程序/json”,并且我的配置明确定义了 record_statistics = 1。

根据文档,这应该一切正常,但我仍然收到空请求。import_logs.py 脚本也可以,所以我知道一般的批量导入没有损坏,但我不确定如何让程序接受我的数据。有没有人有运气?

谢谢!

4

2 回答 2

1

弄清楚出了什么问题。他们的文档在如何格式化请求方面不正确。首先,不需要 URL 编码数据。其次,JSON 字符串需要如下所示:

{
"requests": [
    {
        "apiv": "1",
        "bots": "1",
        "idsite": "1",
        "download": "",
        "cdt": "",
        "dp": "",
        "url": "",
        "urlref": "",
        "cip": "",
        "ua": "",
        "_cvar": {
            "1": [
                "Not-Bot",
                "Mozilla/5.0+(Macintosh;+U;+Intel+Mac+OS+X+10_6_5;+en-US)+AppleWebKit/534.10+(KHTML,+like+Gecko)+Chrome/8.0.552.231+Safari/534.10"
            ]
        },
        "rec": "1"
    }
  ]
}

并非所有这些数据都需要发送,但这是必要的格式。之后,它只是数据清理。

于 2013-05-03T14:31:23.860 回答
1

也许您的请求的问题是您的查询字符串是 URL 编码的,但它们不需要,因为它们是 POST 正文的一部分。

您的 POST 应该是这样的:

{"requests":["?idsite=1&url=http://example.org&action_name=Test+bulk+log+Pageview&rec=1"],"token_auth":"mytokenhere"}

请参阅批量跟踪 API 文档中的示例:http: //piwik.org/docs/tracking-api/reference/#toc-advanced-bulk-tracking-requests

于 2013-05-02T18:35:48.437 回答