8

我是一个相对较新的 Javascript 程序员,我正在试验 Marvel API(我需要访问项目的图像)并且在围绕需求时遇到了一些麻烦。

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

我尝试用 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从本地机器访问 Marvel API 时扮演什么角色。我需要添加localhost到此列表中吗?

谢谢你的帮助!

4

2 回答 2

15

按照步骤:

  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
于 2018-10-05T18:35:04.297 回答
5

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

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。

于 2020-07-13T20:41:12.913 回答