我使用 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”之类的服务时,会出现错误!
最佳答案
这个问题很难重现,因为它需要一个应用程序 key ,而且它似乎只授予 OVH 的现有客户。我什至看不到他们网站上帐户注册页面的链接。
通过查看 code of the call() method in /ovh/client.py ,他们的服务器似乎无法识别脚本发送的签名之外的格式或内容。根据内联文档,签名是从这些参数生成的:
由于您的调用与 OVH Python 包网页上提供的示例代码相同,因此最后四个参数应该是有效的。在这种情况下,您的配置文件中的 应用程序 secret 或 客户 key (或两者)看起来都不正确。
另请参阅“签名请求”标题下的 documentation on OVH site。他们解释了签名是如何制作的以及它应该是什么样子。
也许尝试重新创建一个新的应用程序 API 来获取新的 key 和 secret ,并确保复制它们时没有任何额外的字符。