Oauth1.0: Как сгенерировать HMAC-SHA1 Oauth_signature без использования токена доступа и секретного токена в python? - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь получить доступ к ресурсу, для которого мне нужно реализовать авторизацию Oauth1.Когда я использую почтальон с возможностью добавления пустых параметров в подпись, он работает нормально, но когда я пытаюсь реализовать то же самое с Python, возникает ошибка его выдачи.

enter image description here

Это мой код Python. Пожалуйста, скажите мне, какие изменения я должен сделать

import requests
import json
from requests_oauthlib import OAuth1Session
from requests_oauthlib import OAuth1
import urllib
import random
import time
from hashlib import sha1
import hmac
def sign_request(epocTime,nounce):
    key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' 
    url = "GET&https://XXXXXXXXXXXXXXXXXXXXX/api/XXXXXXXXXXXXX&oauth_consumer_key=XXXXXXX&oauth_nonce=12345&oauth_signature_method=HMAC-SHA1&oauth_timestamp={}&oauth_version=1.0".format(epoch_time)
    raw = urllib.quote(url)
    hashed = hmac.new(key, raw, sha1)
    print hashed
    return hashed.digest().encode("base64")

def test():
    nounce = "12345"
    epoch_time = int(time.time())
    url = "https://XXXXXXXXXXXXXX/api/XXXXXXXXXXXXXXXXXXXXXX"
    strr = sign_request(epoch_time,nounce)
    print strr
    querystring = {"oauth_consumer_key":"1XXXXXXXXXXXXXXXXX","oauth_token":"",
    "oauth_signature_method":"HMAC-SHA1","oauth_timestamp":epocTime,
    "oauth_nonce":nounce,"oauth_version":"1.0",
    "oauth_signature":strr}
    response = requests.request("GET", url, params=querystring)
    print response.text
test()

1 Ответ

0 голосов
/ 26 июля 2019

У меня была похожая проблема в Python 3 ... при попытке использовать OAuth 1.0 для сайта, который не использовал токены.Самым сложным для меня было получить правильную подпись. Этот ответ привел меня туда, где я должен был быть.

...