问题描述
问题: 我正在尝试从网站获取 requests.get 进行打印,并且需要签名。从我在网站上读到的内容来看,它需要使用我的密钥并使用 HMAC-SHA1 base 64 对其进行签名。
我知道我需要将 hmac 导入到我的 python 脚本中,但除此之外,我不确定我的签名是否是网站正在寻找的。p>
这是一个指向如何设置身份验证的链接:https://www.ninjarmm.com/dev-api/#the_authentication_header
在网站上它给出了一个签名应该如何的例子,但我不知道如何在 python 中应用它:
### How do I apply this in my python script's header?
Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID,Base64( UTF-8- Encoding-Of( StringToSign ) ) ) ); StringToSign = HTTP-Verb + "n" + Content-MD5 + "n" + Content-Type + "n" + Date + "n" + CanonicalizedResource;
### How do I apply this in my python script's header?
这是我的代码:
import requests
import os
import json
from datetime import date
from email.utils import formatdate
ninjaapi = "some data"
ninjasak = "some data"
ninjaurl = "https://api.ninjarmm.com/v1/devices"
ninjaheaders = {"authorization":ninjaapi + ninjasak,"Date":now,}
ninjastatusresponse = requests.get(ninjaurl,headers=ninjaheaders)
ninja_json = ninjastatusresponse.json()
print(ninja_json)
这是我目前得到的结果:
{'error': 'invalid_header','error_description': "Invalid 'Authorization' header",'error_code': 1}
如果有人有任何我可以测试的想法,请告诉我!
感谢您的时间,
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)