我正在尝试向Piwik跟踪API(/piwik.php)发送批量请求,但我遇到了问题。当我发送请求时(从PHP脚本通过ajax,curl和fiddler2),我收到以下内容:
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"}
直接来自他们网站的例子。我确保将content-type设置为“Content-Type:application / json”,并且我的配置已经明确定义了record_statistics = 1。
根据文档,这应该都可以,但我仍然得到空的请求。 import_logs.py脚本也有效,所以我知道一般批量导入没有被破坏,但我不知道如何让程序接受我的数据。有人有运气吗?
谢谢!
答案 0 :(得分: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
答案 1 :(得分: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"
}
]
}
并非所有这些数据都需要发送,但这是必要的格式。之后,这只是数据清理。