何をしているのかよくわかりません。これにはライブラリを使用する必要がありますか?それとも手動で行いますか?
そこで、Python で WiThings ( http://www.withings.com/api ) API を使って作業をしようとしています。
一部のリクエストを実行するには、OAuth 認証が必要です。リクエスト ライブラリを使用して、oauth トークンとシークレット トークンを、コンシューマーおよびコンシューマー シークレット トークンと共に取得しました。
今、私はリクエストをしなければならないところにいて、いくつかの問題に直面しています。作成する必要があるリクエストの形式は次のとおりです (API の例)。
http://wbsapi.withings.net/notify?action=subscribe
&callbackurl=http%3a%2f%2fwww.yourdomain.net%2fyourCustomApplication.php
&comment=Your%20Own%20Application%20Description
&oauth_consumer_key=c331c571585e7c518c78656f41582e96fc1c2b926cf77648223dd76424b52b
&oauth_nonce=accbac1b7ee2b86b828e6dc4a5a539b2
&oauth_signature=XfobZMboIg2cRyNKAvyzONHHnKM%3D
&oauth_signature_method=HMAC-SHA1
&oauth_timestamp=1311842514
&oauth_token=887557411788d5120537c6550fbf2df68921f8dd6f8c7e7f9b441941eb10
&oauth_version=1.0
&userid=831
私が知る限り、これは末尾のユーザー ID を除いて、OAuth の典型的な形式です。
では、リクエスト ライブラリを使用してこのようなリクエストを行うことはできますか? それとも他のライブラリですか?コメント、userid、および callbackurl フィールドを使用して、URL を正しく取得するにはどうすればよいですか? または、この URL を手動で生成する必要がありますか? その場合、これを行うための最良の方法は何ですか?
私はしばらくこれに固執していたので、どんな支援も大歓迎です。
編集
したがって、明確にするために、参照されているコードの約 98% を理解しています。最後に少しだけ問題があります。
だからここに、次のコードがあります:
from __future__ import unicode_literals
from urlparse import parse_qs
import requests
from requests_oauthlib import OAuth1Session
consumer_key = '**Valid consumer key**'
consumer_secret = '**Valid consumer secret**'
oauth_key = '**Valid oauth key obtained through requests library and OAuth workflow**'
oauth_secret ='**Valid oauth secret obtained through requests library and OAuth workflow**'
verifier = '**Valid consumer key obtained through requests library and OAuth workflow**'
base_url = 'http://wbsapi.withings.net/notify'
params = {
'action': 'subscribe',
'callbackurl': '**callback URL**',
'comment': '**comment**',
'oauth_consumer_key': '**consumer_key**',
'oauth_nonce': 'etc etc',
'oauth_signature' : '' # <-------------- Where do I get this
# etc etc... I have everything else
}
r = requests.get("http://wbsapi.withings.net/notify", params=params)
必要なのはこれだけです。必要なものはすべて揃っていますが、署名はありません。oauth ライブラリから署名を取得する方法はありますか? これが私を支えてきたすべてです。