"你必须提供哈希." 使用API​​下载数据时出错(在R中)

Tal*_*nik 10 api r httr

我想通过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."
Run Code Online (Sandbox Code Playgroud)

我想将所有这些数据提取到R.我应该做什么/读什么?

谢谢.

ber*_*ant 10

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

您可以使用以下命令计算md5:

library(digest)
hash <- digest(paste0(ts, privateKey, publicKey), algo="md5")
Run Code Online (Sandbox Code Playgroud)

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

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

hash - ts参数的md5摘要,您的私钥和您的公共

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

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


小智 5

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

请检查以下来自 MARVEL 的示例:

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

ts -1 私钥- abcd 公钥- 1234