9

我正在尝试使用 httr 包找到使用 R 连接到 Appannie API 的方法(根本没有 API 连接经验)。API 需要包含来自 appannie 网站的请求标头 Citation: 注册 App Annie 帐户并生成 API 密钥。将此密钥添加到您的请求标头中,如下所示:
Authorization: Bearer ''
citation over

我写的代码看起来像这样

query <- "http://api.appannie.com/v1/accounts/1000/sales?break_down=application+dat
&start_date=2012-01-01
&end_date=2012-02-01
&currency=USD
&countries=US
&page_index=1"
getdata<-GET(url=query, add_headers("Authorization: bearer 811b..."))

命令http_status(getdata)向我显示“客户端错误:(401)未经授权”有人可以帮我解决这个问题,我做错了什么?

4

1 回答 1

12

您没有正确指定标题。add_headers(...)需要一个命名列表。

library(httr)    # for GET(...)
library(rjson)   # for fromJSON(...)
query <- "https://api.appannie.com/v1/accounts/1000/sales?break_down=application+dat&start_date=2012-01-01&end_date=2012-02-01&currency=USD&countries=US&page_index=1"
getdata<-GET(url=query, add_headers(Authorization="bearer <your api key>"))
fromJSON(content(getdata,type="text"))
# $code
# [1] 403
# 
# $error
# [1] "Invalid connection account"

从我没有收到 401 错误的意义上说,这“有效”。在我的情况下,帐户 1000 不存在。

关于评论中的 http/https 问题,http 已被贬低,自 2014-04-01 起将不再被接受,因此您不妨开始使用 https。

于 2014-03-26T20:42:47.853 回答