通过python3发布到coinbase pro API的签名无效

通过python3发布到coinbase pro API的签名无效,python,python-3.x,Python,Python 3.x,我正在尝试通过python连接到pro API,我认为我已经做了所有正确的事情,但是我一直得到带有无效签名的401响应 有人能检查一下我的代码并确保它正在做它应该做的事情吗 导入json、hmac、hashlib、时间、请求、base64 从requests.auth导入AuthBase def身份验证(api_密钥、机密密钥、密码短语): timestamp=str(time.time()) message='{}{}'。格式(时间戳'GET','https://api.pro.coinbas

我正在尝试通过python连接到pro API,我认为我已经做了所有正确的事情,但是我一直得到带有无效签名的401响应

有人能检查一下我的代码并确保它正在做它应该做的事情吗

导入json、hmac、hashlib、时间、请求、base64
从requests.auth导入AuthBase
def身份验证(api_密钥、机密密钥、密码短语):
timestamp=str(time.time())
message='{}{}'。格式(时间戳'GET','https://api.pro.coinbase.com/accounts')
hmac_key=base64.b64解码(秘密_key)
encoded_message=message.encode()
signature=hmac.new(hmac_密钥,编码_消息,hashlib.sha256).digest()
签名\u b64=base64.b64编码(签名)
标题={
“CB-ACCESS-SIGN”:签名,
“CB-ACCESS-TIMESTAMP”:时间戳,
“CB-ACCESS-KEY”:api_密钥,
“CB-ACCESS-PASSPHRASE”:密码短语,
“内容类型”:“应用程序/json”
}
返回标题
美国石油学会https://api.pro.coinbase.com/'
auth=authentication('kjdvgfskjidfahvgkjia','kshfhg/hsdkjdjjjkdskighsokjf/jgjg==','hellloooo')
r=requests.get(api_url+‘accounts’,headers=auth)
印刷品(r)
打印(右文本)
根据网站API文档,它声明-

所有REST请求必须包含以下标头:

    CB-ACCESS-KEY The api key as a string.   
    CB-ACCESS-SIGN The base64-encoded signature (see Signing a Message).
    CB-ACCESS-TIMESTAMP A timestamp for your request.
    CB-ACCESS-PASSPHRASE The passphrase you specified when creating the
    API key. All request bodies should have content type
    application/json and be valid JSON.
CB-ACCESS-SIGN头是通过在预灰化字符串timestamp+方法+请求路径+正文(其中+表示字符串串联)上使用base64解码密钥创建sha256 HMAC并对输出进行base64编码而生成的。时间戳值与CB-ACCESS-timestamp头相同

正文是请求正文字符串,如果没有请求正文(通常用于GET请求),则省略

我已经有一个完整的母马到这个阶段。 最后的两个print语句返回

    <Response [401]>
    {"message":"invalid signature"}
    [Finished in 0.4s]

{“消息”:“无效签名”}
[以0.4s完成]
我觉得一切都很好,但显然不是

    <Response [401]>
    {"message":"invalid signature"}
    [Finished in 0.4s]