2016-03-26 14 views
4

私はPythonラッパーと一緒にOVHのAPIを使用しています:BadParametersError:無効な署名OVHの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のdocumとして保存されます。提案は示唆している。

[default] 
; general configuration: default endpoint 
endpoint=ovh-eu 

[ovh-eu] 
application_key=XXXlVy5SE7dY7Gc5 
application_secret=XXXdTEBKHweS5F0P0tb0lfOa8GoQPy4l 
consumer_key=pscg79fXXX8ESMIXXX7dR9ckpDR7Pful 

私は接続できますが、インスタンス「/ me」のようなサービスを使用しようとすると、エラーが発生します。

+0

こんにちはルーベン、あなたの問題は解決しましたか?それ以外の場合は、http://github.com/ovh/python-ovhで問題を開くか、[email protected]に登録してください。そこから手助けするのが簡単になります:) – yadutaf

+0

何とか私は古いバージョンのOVHライブラリを使用していました。私はそれを解決することができた。ありがとう – Ruben

答えて

2

アプリケーションキーが必要なため、この問題を再現することは難しく、OVHの既存の顧客にのみ付与されているようです。自分のサイトにアカウント登録ページへのリンクが表示されませんでした。

code of the call() method in /ovh/client.pyを見ると、自分のサーバーがスクリプトによって送信された署名の形式や内容を認識していないようです。インラインドキュメントによると、署名は、これらのパラメータから生成されます。

  • application_secret
  • CONSUMER_KEY
  • METHOD
  • フル要求URL
  • サーバーの現在時刻が(考慮時間デルタを取ります)

OVH PythonパッケージのWebページで提供されているサンプルコードと同じですが、最後の4つのパラメータが有効である必要があります。その場合、アプリケーション秘密またはお客様のキー(またはその両方)のいずれかが設定ファイルに正しくないようです。

「署名リクエスト」見出しのdocumentation on OVH siteも参照してください。彼らは署名がどのように作られ、どのように見えるかを説明します。

新しいアプリケーションAPIを再作成して、新しいキーとシークレットを取得し、追加の文字なしでコピーするようにしてください。

関連する問題