0

我正在尝试使用 oauth1 生成签名,以此为指导:Implementation HMAC-SHA1 in python

使用以下代码,我收到“格式错误的授权标头”错误:

    import requests
    import oauthlib.oauth1.rfc5849.signature as oauth
    from random import getrandbits

    nonce = str(getrandbits(64))

    headers={
        "Authorization": (
            'oauth_nonce=nonce, '
            'oauth_consumer_key=CONSUMER_KEY, '
            'oauth_signature_method="HMAC-SHA1", '
        )
    }
    params = oauth.collect_parameters(
        uri_query="",

        headers=headers,
        exclude_oauth_signature=True, 
        with_realm=False
    )

    norm_params = oauth.normalize_parameters(params)

    base_string = oauth.construct_base_string(
        "POST", 
        "https://my_api/account", 
        norm_params
     )

    sig = oauth.sign_hmac_sha1(
        base_string, 
        client_secret, 
        resource_owner_secret 
    )

    print (sig)

问题: 1. 我需要在标题中添加时间戳吗?2. 假设签名有效,POST 请求如何获取我的数据?这里的目的是获取一个签名,然后我在 api 上的后续 GET 中使用该签名吗?3. 为什么 'sig' 变量中的方法没有创建有效的签名?4. 签名应该在标题中吗?

4

0 回答 0