Skip to main content
 首页 » 编程设计

python之您将如何格式化像这样的 Python 字典这样的 Auth/OAuth header

2025年05月04日10zfyouxi

我正在使用 python-requests 使用 xAuth 及其私钥从 Twitter 获取 access_token。目前,一个问题是我不知道如何格式化这个标题:

Authorization: OAuth oauth_consumer_key="key_here",oauth_nonce="72393267",oauth_signature="signature_here",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1383672378",oauth_version="1.0"

目前我正在将其格式化如下:

{'Authorization': 'OAuth', 'oauth_consumer_key': 'dWW6V8isvSGRL4qbElrGw', 'oauth_nonce': params['oauth_nonce'], 'oauth_signature': '', 'oauth_signature_method': 'HMAC-SHA1', 'oauth_timestamp': params['oauth_timestamp'], 'oauth_version': '1.0' }

请您参考如下方法:

事实证明,我只需要将它放在一个字符串中(记住ORDER IS EVERYTHING,如果键/值乱序则它不会工作)。 header 如下所示

OAuth oauth_consumer_key="consumer_key", oauth_nonce="61959852", oauth_signature="signature", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1383694192", oauth_version="1.0"

我非常简单的代码如下:

def auth_header(creds, http_session): 
    auth = 'OAuth ' + 'oauth_consumer_key=\"' + creds['oauth_consumer_key'] 
    auth = auth + '\",oauth_nonce=\"' + creds['oauth_nonce'] 
    auth = auth + '\",oauth_signature=\"' + creds['oauth_signature'] 
    auth = auth + '\",oauth_signature_method=\"' + creds['oauth_signature_method'] 
    auth = auth + '\",oauth_timestamp=\"' + creds['oauth_timestamp'] 
    auth = auth + '\",oauth_version=\"' + creds['oauth_version'] + '\"' 
    http_session.headers['Authorization'] = auth