试图找到一种从HTTP API重新排序结果的方法。这是一个例子
https://demo.piwik.org/?module=API&method=VisitsSummary.get&idSite=7&period=month&date=last3&format=xml&token_auth=anonymous
返回
<results>
<result date="2017-10"/>
<result date="2017-11"/>
<result date="2017-12"/>
</results>
然而,我想把它归还为
<results>
<result date="2017-12"/>
<result date="2017-11"/>
<result date="2017-10"/>
</results>
我尝试在URL中使用filter_sort_order
,但这不起作用。有没有办法在URL或PHP
中的解决方案中执行此操作,可以在获取XML
后执行此操作?
继续评论:
抱歉,如果API没有提供选项,那么您必须接受它发送的内容。
如果您希望对结果进行排序,那么您可以在JavaScript中对客户端进行排序,或者从您自己的服务器端获取数据PHP,对它们进行排序,并将其作为API提供给客户端。
如果你想要几种不同类型的排序,那么我会建议后者。
其中一位Piwik开发人员回答了以下问题:
嗨,预计报告按日期列出。此处报告没有维度(仅主要指标)。具有维度的报表已排序,但会在日期... https://demo.piwik.org/?module=API&method=Actions.getPageUrls&idSite=7&period=month&date=last30&format=json&token_auth=anonymous&filter_sort_column=nb_visits&filter_sort_order=desc中对每个dataTable进行排序
所以基本上排序应用于每个日期的数据,因为VisitsSummary.get没有多行,所以没有任何排序。
将排序过滤器应用于没有维度的报表的日期将不是解决方案,因为我们需要对具有和不具有维度的报表进行一致的排序行为。这将是一个新功能,使这种可排序,并需要一个新的API参数
(Qazxswpoi)
在此功能之前,我建议对数据客户端进行排序。
尽管你已经接受了我的答案,但现在你已经发布了https://forum.piwik.org/t/filter-sort-order-not-working-on-visitssummary-get/26710/4,我认为这是正确的答案:
可选的API参数
每个API调用都可以包含未出现在参数列表中的参数,但充当“过滤器”。过滤器可以......充当数据助手(排序结果......)。“
这两者的组合似乎是你的答案
filter_column;定义我们要搜索文本的列(请参阅filter_pattern)。如果未指定,则默认为“标签” 。 filter_sort_order;定义结果的顺序,asc或desc
如果您无法弄明白,请尝试通过URL of the API与他们联系或询问https://developer.piwik.org/support的其他用户