向Piwik.php提交POST请求
我试图向Piwik跟踪api(/Piwik.php)发送批量请求,但遇到了一个问题。当我发送请求(通过ajax、curl和fiddler2从PHP脚本发送)时,我收到以下信息:向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
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,我可以看到发送的内容,他们的文档与实际需要发送的内容不符。很高兴看到他们的代码中的所有内容都已正确排列