Я пытаюсь получить информацию из REST API с помощью Python, и для этого требуется идентификация OAuth. Мне удалось составить запрос с почтальоном, и он работает. Однако код Python, который мне дает Почтальон, не работает:
import requests
url = "https://www.somewebsite.com/api/rest/products/store/2"
querystring = {"limit":"100","page":"5"}
headers = {
'Authorization': "OAuth oauth_consumer_key="3626311748bcf2072da2bd475fccfa3c",\
oauth_token="878c7c0eb6122e6208b75e2ba9e23f86",\
oauth_signature_method="HMAC-SHA1",oauth_timestamp="1560892926",\
oauth_nonce="9Cy9wmOo21v",oauth_signature="9VqTR2qFQLZ%2Fz2Ibvny1e%2BC7Zes%3D"",
'User-Agent': "PostmanRuntime/7.15.0",
'Accept': "*/*",
'Cache-Control': "no-cache",
'Postman-Token': "eef345cc-52ee-4496-8109-e7ea013adb9c,0834423c-041c-4ca5-8bef-33876c311ef6",
'Host': "www.inart.com",
'cookie': "PHPSESSID=gmjmllng429gfk8t0hvd1abbu3",
'accept-encoding': "gzip, deflate",
'Connection': "keep-alive",
'cache-control': "no-cache"
}
response = requests.request("GET", url, headers=headers, params=querystring)
print(response.text)
Неработающая часть на самом деле - это nonce, отметка времени и, конечно, подпись. Я сделал функцию, которая генерирует случайный одноразовый номер и случайную временную метку, но я не знаю, как создать действительную подпись для HMAC-SHA1.
Есть ли библиотека, которая будет выполнять аутентификацию для меня, или мне нужно написать свою собственную функцию для генерации действительной подписи? Зависит ли подпись от всего вызова или только от таких частей, как nonce, timestamp и tokens?
Любая помощь будет оценена!