我是一个相对较新的Javascript程序员,并且正在尝试使用Marvel API(我需要访问项目的图像),并且在满足要求方面遇到了一些麻烦。
据我了解,从服务器端应用程序调用API时,您需要传递hash
和ts
(时间戳,我想是)。但是我没有在文档中看到使用客户端应用程序时需要这样做。
我尝试对Insomnia进行一些基本的端点测试,并且收到消息"You must provide a hash."
。显然我也需要hash
才能进行客户端访问?
我看过一些NodeJS示例,向您展示了如何生成hash
(例如,https://www.raymondcamden.com/2014/02/02/Examples-of-the-Marvel-API),但是对于客户端却没有任何帮助(我可以找到)。我也不知道如何在失眠症(或邮差)中产生这种情况。任何朝着正确方向的指针都会受到赞赏。
我还想问一问authorized domains
在从本地计算机访问Marvel API时扮演什么角色。我需要将localhost
添加到此列表吗?
感谢您的帮助!
答案 0 :(得分:3)
执行以下步骤:
ts+privatekey+publickey
的MD5哈希。 eg: md5(ts + privKey + pubKey)
对于md5哈希:http://www.md5.cz/ URL?ts=val&apikey=key&hash=md5Hash
。
例如。 https://gateway.marvel.com:443/v1/public/characters?ts=thesoer&apikey=001ac6c73378bbfff488a36141458af2&hash=72e5ed53d1398abb831c3ceec263f18b 答案 1 :(得分:1)
向邮递员收藏中添加必备脚本。
var pubkey = "your_public_key";
var pvtkey = "your_private_key";
var ts = new Date().getTime();
pm.environment.set("ts", ts)
pm.environment.set("apikey", pubkey)
var message = ts+pvtkey+pubkey;
var a = CryptoJS.MD5(message);
pm.environment.set("hash", a.toString())
然后您可以像这样拨打电话
https://gateway.marvel.com/v1/public/characters?ts={{ts}}&apikey={{apikey}}&hash={{hash}}
请参阅this集合。
关于您的授权域,添加您的公共IP。