14

我想通过 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。我应该做什么/阅读?

谢谢。

4

3 回答 3

12

您必须提供 ts(时间戳)和 hash 参数。哈希是(根据文档)= md5(ts+privateKey+publicKey)

您可以使用以下方法计算 md5:

library(digest)
hash <- digest(paste0(ts, privateKey, publicKey), algo="md5")

服务器端应用程序除了 apikey 参数外,还必须传递两个参数:

ts - 时间戳(或其他可以根据请求更改的长字符串)

hash - ts 参数、你的私钥和你的公钥的 md5 摘要

key (eg md5(ts+privateKey+publicKey) 例如,公钥为“1234”,私钥为“abcd”的用户可以构造如下有效调用:

http://gateway.marvel.com/v1/public/comics?ts=1&apikey=1234&hash=ffd275c5130566a2916217b101f26150 (哈希值为1abcd1234的md5摘要)

于 2015-02-26T13:27:57.047 回答
5

您需要有以下组合 ts+您的私钥+您的公钥

请查看 MARVEL 中的以下示例:

例如,具有“1234”公钥和“abcd”私钥的用户可以构造如下有效调用:http: //gateway.marvel.com/v1/public/comicsts=1 &apikey=1234&hash=ffd275c5130566a2916217b101f26150(哈希值为1abcd1234的md5摘要)

ts -1 私钥- abcd 公钥- 1234

于 2019-03-23T12:06:13.220 回答
3

其他答案中描述的哈希仅在您使用私钥时使用。

可以通过添加引用者以您尝试的方式使用公钥:

curl --referer localhost http://gateway.marvel.com:80/v1/public/characters?apikey=f389fcb49ad574e10ca570867f4bfa43

我不知道,所以必须做R一个请求。curl

在您的开发者帐户中,您可以列出允许的推荐人。我有本地主机,但你的可以是任何...

于 2018-07-29T10:14:59.033 回答