BadParametersError:使用 OVH Python 包装器时签名无效

Posted

技术标签:

【中文标题】BadParametersError:使用 OVH Python 包装器时签名无效【英文标题】:BadParametersError: Invalid signature when using OVH Python wrapper 【发布时间】:2016-07-14 11:34:43 【问题描述】:

我正在使用 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”等服务时,出现错误!

【问题讨论】:

嗨鲁本,你的问题解决了吗?否则,请随时在github.com/ovh/python-ovh 上打开问题或订阅 api-subscribe@ml.ovh.net。从那里提供帮助会更容易:) @yadutaf 我不知何故使用了旧版本的 OVH 库。我可以解决它。谢谢 【参考方案1】:

很难重现该问题,因为它需要应用程序密钥,而且似乎只授予 OVH 的现有客户。我什至看不到他们网站上帐户注册页面的链接。

通过查看code of the call() method in /ovh/client.py,他们的服务器似乎无法识别您的脚本发送的签名的格式或内容。根据内联文档,签名是从这些参数生成的:

application_secret consumer_key 方法 完整的请求网址 身体 服务器当前时间(考虑时间增量)

由于您的调用与 OVH Python 包网页上提供的示例代码相同,因此最后四个参数应该是有效的。在这种情况下,您的配置文件中的 application secretcustomer key(或两者)看起来都不正确。

另请参阅“签名请求”标题下的 documentation on OVH site。他们解释了签名是如何制作的以及它应该是什么样子。

也许尝试重新创建一个新的应用程序 API 以获取新的密钥和秘密,并确保您复制它们时没有任何额外的字符。

【讨论】:

以上是关于BadParametersError:使用 OVH Python 包装器时签名无效的主要内容,如果未能解决你的问题,请参考以下文章

使用 OVH 托管网站发送电子邮件问题

OVH - 执行 cron

带有 OVH 的 Javax 邮件 API

在 OVH 的 Openstack 上使用 Terraform 创建专用网络

OVH JAVA API 使用带参数的 Get 请求

OVH 的 OpenStack Swift 的雾配置