繁体   English   中英

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

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

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

我还想问一下,当从本地机器访问 Marvel API 时, authorized domains扮演什么角色。 我是否需要将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 : eg: md5(ts + privKey + pubKey)
  4. 加入点。 URL?ts=val&apikey=key&hash=md5Hash 例如。 https://gateway.marvel.com:443/v1/public/characters?ts=thesoer&apikey=001ac6c73378bbfff488a36141458af2&hash=72e5ed53d1398abb831c3ceec263f18b

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

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}}

看到这个集合。

关于您的授权域,请添加您的公共 IP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM