我想通过API代码从MARVEL DEVELOPER中提取数据并对其进行分析(使用R)。
我从MARVEL网站获得了以下网址:http://gateway.marvel.com:80/v1/public/characters?apikey=f389fcb49ad574e10ca570867f4bfa43
我使用httr包来收集数据:
install.packages("httr")
library(httr)
> url <- GET("http://gateway.marvel.com:80/v1/public/characters?orderBy=name&limit=100&apikey=f389fcb49ad574e10ca570867f4bfa43")
> content(url)
$code
[1] "MissingParameter"
$message
[1] "You must provide a hash."
我想将所有这些数据提取到R.我应该做什么/读什么?
感谢。
答案 0 :(得分:9)
您必须提供ts(时间戳)和哈希参数。哈希是(根据documentation)= md5(ts + privateKey + publicKey)
你可以用:
计算md5library(digest)
hash <- digest(paste0(ts, privateKey, publicKey), algo="md5")
除apikey参数外,服务器端应用程序还必须传递两个参数:
ts - 时间戳(或其他长字符串,可以逐个请求地更改)
hash - ts参数的md5摘要,您的私钥和公共
键(例如md5(ts + privateKey + publicKey) 例如,公钥为“1234”且私钥为“abcd”的用户可以构建有效的呼叫,如下所示:
http://gateway.marvel.com/v1/public/comics?ts=1&apikey=1234&hash=ffd275c5130566a2916217b101f26150 (哈希值是1abcd1234的md5摘要)
答案 1 :(得分:2)
您需要具有以下组合 ts +私钥+公钥
请检查以下来自MARVEL的示例:
例如,具有公钥“ 1234” 和私钥“ abcd” 的用户可以按以下方式构造有效的呼叫:{{3} }? ts = 1 &apikey = 1234&hash = ffd275c5130566a2916217b101f26150(哈希值是1abcd1234的md5摘要)
ts -1 私钥-abcd 公钥-1234
答案 2 :(得分:0)
其他答案中描述的哈希仅在您使用私钥时使用。
可以通过添加引荐来源网址来尝试使用公钥:
curl --referer localhost http://gateway.marvel.com:80/v1/public/characters?apikey=f389fcb49ad574e10ca570867f4bfa43
我不知道R
,因此必须执行curl
请求。
在您的开发者帐户中,您可以列出允许的引荐来源。我有本地主机,但是您的可以是任何主机...