向Piwik.php提交POST请求

向Piwik.php提交POST请求,php,json,post,matomo,Php,Json,Post,Matomo,我试图向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 1

我试图向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
这就是他们网站上的例子。我已经确保将内容类型设置为“content-type:application/json”,并且我的配置已经明确定义了record_statistics=1

根据文档,这应该都可以,但我仍然得到一个空的请求。import_logs.py脚本也可以工作,因此我知道常规批量导入没有中断,但我不确定如何让程序接受我的数据。有人运气好吗


谢谢

您的请求可能存在的问题是,您的查询字符串是URL编码的,但它们不一定是URL编码的,因为它们是文章正文的一部分

你的帖子应该是这样的:

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

请参见文档中的批量跟踪API示例:

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

{"requests":["%3Fidsite%3D1%26url%3Dhttp%3A%2F%2Fexample.org%26action_name%3DTest+bulk+log+Pageview%26rec%3D1"],"token_auth":"mytokenhere"}
{
"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"
    }
  ]
}

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

谢谢nullability。有一点是这样的,他们的文档在发送的json字符串需要是什么方面是错误的。我能够在我的服务器上安装Fiddler,当我运行他们的导入脚本并发现请求应该如何形成时,我进行了监听。这在最新的Piwik 2中不起作用。下面是works的用户指南。谢谢NickT,这是大约一年前的事,我和他们的开发人员就此事进行了反复讨论,因为使用Fiddler,我可以看到发送的内容,他们的文档与实际需要发送的内容不符。很高兴看到他们的代码中的所有内容都已正确排列