Я пытаюсь сформировать Marvel API Call.
Вот ссылка на авторизацию:
https://developer.marvel.com/documentation/authorization
Я пытаюсь создать приложение на стороне сервера, поэтому по ссылке выше мне нужны параметры timestamp, apikey и hash url. Хеш должен быть хэшем md5 в форме: md5 (отметка времени + privateKey + publicKey), а параметр apikey url - это мой открытый ключ.
Вот мой код, я делаю запрос в Python 3, используя библиотеку запросов для формирования запроса, библиотеку времени для формирования метки времени и библиотеку hashlib для формирования хеша.
#request.py: making a http request to marvel api
import requests;
import time;
import hashlib;
#timestamp
ts = time.time();
ts_str = str(float(ts));
#keys
public_key = 'a3c785ecc50aa21b134fca1391903926';
private_key = 'my_private_key';
#hash and encodings
m_hash = hashlib.md5();
ts_str_byte = bytes(ts_str, 'utf-8');
private_key_byte = bytes(private_key, 'utf-8');
public_key_byte = bytes(public_key, 'utf-8');
m_hash.update(ts_str_byte + private_key_byte + public_key_byte);
m_hash_str = str(m_hash.digest());
#all request parameters
payload = {'ts': ts_str, 'apikey': 'a3c785ecc50aa21b134fca1391903926', 'hash': m_hash_str};
#make request
r = requests.get('https://gateway.marvel.com:443/v1/public/characters', params=payload);
#for debugging
print(r.url);
print(r.json());
Вот вывод:
Я не уверен, что именно делает комбинацию недействительной.
Я могу предоставить дополнительную информацию по запросу. Любая информация приветствуется. Спасибо!
EDIT:
Я немного новичок в вызовах API в целом. Есть ли ресурсы для понимания того, как их выполнять? Пока что из-за моего ограниченного опыта они кажутся очень конкретными, и чтобы заставить каждого работать, требуется некоторое время. Я студент колледжа, и всякий раз, когда я работаю в хакатонах, у меня уходит много времени только на то, чтобы понять, как выполнить вызов API. Я признаю, что у меня нет опыта, но в целом для определения новых API требуется большая кривая обучения, даже для людей, которые сделали 10 или около того из них?
Опять же, спасибо за ваше время:)