Marvel API 和 Insomnia(或 Postman):如何传递所需的哈希值?

Marvel API and Insomnia (or Postman): how do I pass the hash value that's required?

我是一个相对较新的 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),但没有针对客户端的内容(我能找到)。我也不知道如何在 Insomnia(或 Postman)中生成它。任何正确方向的指示都将不胜感激。

我还想问一下authorized domains在从本地机器访问漫威API时扮演什么角色。我需要将 localhost 添加到此列表吗?

感谢您的帮助!

按照以下步骤操作:

  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

将先决条件脚本添加到您的 postman 集合中。

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 合集。

关于您的授权域,添加您的 public IP。