惊奇API和失眠症(或邮差):如何传递所需的哈希值?

时间:2018-10-05 17:17:32

标签: javascript request postman insomnia

我是一个相对较新的Javascript程序员,并且正在尝试使用Marvel API(我需要访问项目的图像),并且在满足要求方面遇到了一些麻烦。

据我了解,从服务器端应用程序调用API时,您需要传递hashts(时间戳,我想是)。但是我没有在文档中看到使用客户端应用程序时需要这样做。

我尝试对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添加到此列表吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

执行以下步骤:

  1. 选择一个API端点。例如:https://gateway.marvel.com:443/v1/public/characters
  2. 对ts使用查询值。 ts可以是时间戳记或任何长字符串。 例如:ts = thesoer
  3. 通过代码或最好在线生成ts+privatekey+publickey的MD5哈希。 eg: md5(ts + privKey + pubKey) 对于md5哈希:http://www.md5.cz/
  4. 加入点。 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。