我正在尝试通过其API(https://api.localytics.com/docs#query)从移动分析服务Localytics获取数据。特别是我想在R中翻译以下cURL命令:

curl --get  'https://api.localytics.com/v1/query' \
 --user 'API_KEY:API_SECRET' \
 --data 'app_id=APP_ID' \
 --data 'metrics=users' \
 --data 'dimensions=day' \
 --data-urlencode 'conditions={"day":["between","2013-04-01","2013-04-07"]}'


我的R代码目前看起来像这样。当然,APIKey和API机密将由实际的密钥替换。但是,我收到一条错误消息,指出至少必须指定维度或指标。

object <- getURL('https://api.localytics.com/v1/query', userpwd = "API_Key:API_Secret", httpheader=list(app_id = "app_id=03343434353534",
metrics = "metrics=users",
dimensions = "dimensions=day",
conditions = toJSON('conditions={"day":["between","2014-07-01","2014-07-10"]}')),  ssl.verifypeer = FALSE)


要使其正常工作,必须进行哪些更改。

在此先感谢您的帮助,
彼得

最佳答案

使用httr的开发版本特别容易:

library(httr)

r <- POST('https://api.localytics.com/v1/query',
  body = list(
    app_id = "APP_ID",
    metrics = "users",
    dimensions = "day",
    conditions = list(
      day = c("between", "2014-07-01", "2004-07-10")
    )
  ),
  encode = "json",
  authenticate("API_key", "API_secret")
)
stop_for_status(r)
content(r)


(如API文档中所述,我将请求转换为POST,并对所有内容均使用json编码)。

如果要确切查看要发送到服务器的内容,请使用verbose()配置。

07-24 09:39
查看更多