2014-03-26 96 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

相關問題