在 R 中调用 API(httr 包)
Calling API in R (httr package)
希望你能帮助我,我不是集成方面的专家:)
有一个名为 social bakers(文档:https://api.socialbakers.com)的系统,我试图从中获取一些数据。我有一个令牌,一个秘密,我认为我做对了第一部分。
我只是尝试使用此代码段进行连接:
library(httr)
req <- GET("https://api.socialbakers.com/0/facebook/profiles",
authenticate("token", "secret", type = "basic"))
stop_for_status(req)
content(req)
这非常有效。我有一个 JSON 响应,我可以将其解析为 table。
我的问题是关于另一个 URL 这样的:
library(httr)
req <- GET("https://api.socialbakers.com/0/facebook/metrics",
authenticate("token", "secret", type = "basic"))
stop_for_status(req)
content(req)
相同的代码,不再有效,返回
code 405 HTTP Method Invalid
我不确定我做的是否正确,文档的某些部分说我必须在 header 上使用 base64,但为什么在第一部分工作?一些建议将不胜感激:)
编辑:
已解决:在这种情况下,与 API 交互的正确方法是使用 POST 方法将参数发送到服务。
使用了以下代码段。
library(httr)
library(RCurl)
library(jsonlite)
doc <- POST("https://api.socialbakers.com/0/facebook/metrics",
authenticate("user",
"pass",
type = "basic"),
body = list(
date_start = "2016-01-11",
date_end = "2016-01-12",
profiles = c("12345", "123456"),
metrics = c("fans_count_lifetime", "fans_change"))
, encode = "json")
stop_for_status(doc)
content(doc)
谢谢。
在那种情况下,与 API 交互的正确方法是使用 POST 方法将参数发送到服务。
使用了以下代码段。
library(httr)
library(RCurl)
library(jsonlite)
doc <- POST("https://api.socialbakers.com/0/facebook/metrics",
authenticate("user",
"pass",
type = "basic"),
body = list(
date_start = "2016-01-11",
date_end = "2016-01-12",
profiles = c("12345", "123456"),
metrics = c("fans_count_lifetime", "fans_change"))
, encode = "json")
stop_for_status(doc)
content(doc)enter code here
希望你能帮助我,我不是集成方面的专家:)
有一个名为 social bakers(文档:https://api.socialbakers.com)的系统,我试图从中获取一些数据。我有一个令牌,一个秘密,我认为我做对了第一部分。
我只是尝试使用此代码段进行连接:
library(httr)
req <- GET("https://api.socialbakers.com/0/facebook/profiles",
authenticate("token", "secret", type = "basic"))
stop_for_status(req)
content(req)
这非常有效。我有一个 JSON 响应,我可以将其解析为 table。 我的问题是关于另一个 URL 这样的:
library(httr)
req <- GET("https://api.socialbakers.com/0/facebook/metrics",
authenticate("token", "secret", type = "basic"))
stop_for_status(req)
content(req)
相同的代码,不再有效,返回
code 405 HTTP Method Invalid
我不确定我做的是否正确,文档的某些部分说我必须在 header 上使用 base64,但为什么在第一部分工作?一些建议将不胜感激:)
编辑:
已解决:在这种情况下,与 API 交互的正确方法是使用 POST 方法将参数发送到服务。
使用了以下代码段。
library(httr)
library(RCurl)
library(jsonlite)
doc <- POST("https://api.socialbakers.com/0/facebook/metrics",
authenticate("user",
"pass",
type = "basic"),
body = list(
date_start = "2016-01-11",
date_end = "2016-01-12",
profiles = c("12345", "123456"),
metrics = c("fans_count_lifetime", "fans_change"))
, encode = "json")
stop_for_status(doc)
content(doc)
谢谢。
在那种情况下,与 API 交互的正确方法是使用 POST 方法将参数发送到服务。
使用了以下代码段。
library(httr)
library(RCurl)
library(jsonlite)
doc <- POST("https://api.socialbakers.com/0/facebook/metrics",
authenticate("user",
"pass",
type = "basic"),
body = list(
date_start = "2016-01-11",
date_end = "2016-01-12",
profiles = c("12345", "123456"),
metrics = c("fans_count_lifetime", "fans_change"))
, encode = "json")
stop_for_status(doc)
content(doc)enter code here