2014-03-26 91 views
4

我试图找到与R使用httr包连接到Appannie的API的方式(根本没有API连接经验)。 该API要求包含请求标题 来自appannie网站的引用: 注册App Annie帐户并生成API密钥。 此键,如下所示添加到您的请求头:
授权:承载'
引用过如何正确使用API​​数据请求的请求标头?

我写它看起来像这样

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)未经授权的“ 有人可以帮我一下,我做错了什么?

+0

你尝试过“Bearer”(首都B)吗? – Jasper

+0

我做了,结果相同 –

+0

“* API是无状态的,每个请求都需要认证。所有的API请求都使用API​​密钥承载认证,并且只接受** HTTPS **。*提出的请求。 .appannie.com /条目/ 23215057-3的验证。你的查询以'http'开头。这可能是问题。 – hrbrmstr

回答

6

您没有正确指定标题。 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年4月1日不再接受,所以你不妨开始使用https。

+0

我试过这个,添加了https,并替换了正确的帐户ID,但仍有403错误。我必须成为Appannie的超级管理员吗? –

+0

和在这种情况下下载的页面在分析部分: https://www.appannie.com/dashboard/1000/item/396958695/downloads/ 是“1000” - 帐户? –

+0

根据其[应用程序销售支持页面](http://support.appannie.com/entries/23215097-2-API-data-App-Sales),您必须同时提供accountID和appID,似乎不这样做。如果你不知道如何使用他们的API,你应该联系APP Annie客户支持。上面的解决方案允许您连接到他们的API。您需要提供正确的查询字符串。 – jlhoward

相关问题