2

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

授权: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"

目前我将其格式化如下:

{'授权':'OAuth','oauth_consumer_key':'dWW6V8isvSGRL4qbElrGw','oauth_nonce':参数['oauth_nonce'],'oauth_signature':'','oauth_signature_method':'HMAC-SHA1','oauth_timestamp':参数['oauth_timestamp'], 'oauth_version': '1.0' }

4

1 回答 1

1

事实证明,我只需要将它放在一个字符串中(请记住ORDER IS EVERYTHING,如果键/值乱序,那么它将不起作用)。标题如下所示

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
于 2013-11-05T23:33:12.453 回答