我正在使用OVH API和
python包装器:
https://pypi.python.org/pypi/ovh
尝试执行此代码时:
import ovh
client = ovh.Client()
# Print nice welcome message
print "Welcome", client.get('/me')['firstname']
我收到此错误:
Traceback (most recent call last):
File "index.py", line 6, in <module>
print "Welcome", client.get('/me')['firstname']
File "/home/rubinhozzz/.local/lib/python2.7/site-packages/ovh/client.py", line 290, in get
return self.call('GET', _target, None, _need_auth)
File "/home/rubinhozzz/.local/lib/python2.7/site-packages/ovh/client.py", line 419, in call
raise BadParametersError(json_result.get('message'))
ovh.exceptions.BadParametersError: Invalid signature
正如文档所示,我的信息保存在ovh.conf中.
[default]
; general configuration: default endpoint
endpoint=ovh-eu
[ovh-eu]
application_key=XXXlVy5SE7dY7Gc5
application_secret=XXXdTEBKHweS5F0P0tb0lfOa8GoQPy4l
consumer_key=pscg79fXXX8ESMIXXX7dR9ckpDR7Pful
它看起来我可以连接但是当试图使用像“/ me”这样的服务时,错误就会引发!
最佳答案 很难重现这个问题,因为它需要一个应用程序密钥,而且它似乎只授予OVH的现有客户.我甚至看不到他们网站上的帐户注册页面的链接.
通过查看code of the call() method in /ovh/client.py,似乎他们的服务器无法识别脚本发送的签名的格式或内容.根据内联文档,签名是从这些参数生成的:
> application_secret
> consumer_key
>方法
>完整的请求网址
>身体
>服务器当前时间(考虑时间delta)
由于您的调用与OVH Python包网页上提供的示例代码相同,因此最后四个参数应该有效.在这种情况下,配置文件中的应用程序密钥或客户密钥(或两者)看起来都不正确.
另见“签署请求”标题下的documentation on OVH site.他们解释了如何制作签名以及它应该是什么样子.
也许尝试重新创建一个新的应用程序API来获取新的密钥和秘密,并确保您复制它们没有任何额外的字符.