我正在尝试使用httr从IGDB调用API(此处为文档(。当我在Postman中使用以下查询时,我没有问题,并获得了有100个条目的完整请求:
fields rating, game; where game = 114283; limit 100; sort id desc;
此处的输入示例:
{
"id": 442667,
"game": 114283,
"rating": 3.0
},
然而,当我尝试使用httr在R中进行如下查询时:
string <- paste0("rating, game; where game = ", ids[1,1], "; limit 100; sort id desc;")
data <- POST("https://api-v3.igdb.com/private/rates/",
add_headers("user-key" = "XXXXXXXXXX"),
query = list(fields = string)
)
fromJSON(rawToChar(data$content))
它只返回23行的数据帧:
id game rating
1 442667 114283 3
...
23 383956 114283 10
其他调用类似地返回长度不同的缩短数据帧,具体取决于查询。
如果有人知道为什么会发生这种情况,我希望能有一些见解。
谢谢。
我认为您只是错误地传入了查询字符串,因为它应该被传递到http请求的-d
(数据(参数中。
尝试以下操作:
- 将首字母";字段";进入
string
- 将其传递给
POST
请求的body
参数
所以:
string <- paste0("fields rating, game; where game = ", ids[1,1], "; limit 100; sort id desc;")
data <- POST(
"https://api-v3.igdb.com/private/rates/",
add_headers("user-key" = "XXXXXXXXXX"),
body = string
)