Как сгенерировать подпись oauth с помощью hmac-sha1 с помощью python? - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь получить информацию из 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? Любая помощь будет оценена!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...