2

OAuth プロトコルを介して Withings アカウントに永続的にアクセスするために、ここで提供されているガイドに従っています。2 番目のステップの最後の部分まで、すべてが完全に機能します。

このトークンを承認します:
... 次に、ユーザーが [許可] ボタンをクリックして許可すると、このステップの最初に設定したコールバック URL にリダイレクトされます。...

ただし、ユーザーが [許可] をクリックしても、コールバック URL にリダイレクトされません。代わりに、oauth_token と oauth_verifier を含む「Access Granted」の Withings ページに誘導されます。

助けてください?

彼らが持っている例は次のとおりです。

> https://oauth.withings.com/account/authorize?

> oauth_callback=http%3A%2F%2Fexample.com%2Fget_access_token
> &oauth_consumer_key=c331c571585e7c518c78656f41582e96fc1c2b926cf77648223dd76424b52b
> &oauth_nonce=369f9ceb2f285ac637c9a7e9e98019bd
> &oauth_signature=OR9J9iEl%2F2yGOXP2wk5c2%2BWtYvU%3D
> &oauth_signature_method=HMAC-SHA1 
> &oauth_timestamp=1311778988
> &oauth_token=5bb105d2292ff43ec9c0f633fee9033045ed4643e9871b80ce586dc1bf945
> &oauth_version=1.0

私の呼び出しは次のようになりますが:

> https://oauth.withings.com/account/authorize?

> oauth_callback=http%3A%2F%2Fmysite.com
> &oauth_consumer_key=myConsumerKey
> &oauth_nonce=1234 
> &oauth_signature=6mQ5iICsxxJyunjrGlZLMFNbUQA%3D
> &oauth_signature_method=HMAC-SHA1 
> &oauth_timestamp=1376934855
> &oauth_token=myOauthToken
> &oauth_version=1.0

これは私のphpコードです:

$callback_uri = rawurlencode("http://www.mysite.com");
$authorization_uri = 
"https://oauth.withings.com/account/authorize?" . 
'oauth_callback=' . $callback_uri . 
'&oauth_consumer_key=' .  $oauth_params['oauth_consumer_key'] .
'&oauth_nonce=' .  $oauth_params['oauth_nonce']  .
'&oauth_signature=' .  rawurlencode($oauth_signature) .
'&oauth_signature_method=' .  $oauth_params['oauth_signature_method'] .
'&oauth_timestamp=' .  $oauth_params['oauth_timestamp'] .
'&' . $token . 
'&oauth_version=' .  $oauth_params['oauth_version'];

header("Location: " . $authorization_uri);
4

1 に答える 1

2

うわー...わかりました。私はついにこれを手に入れました。それを理解するのにしばらく時間がかかりました。

どうやら、コールバック URL は、承認ステップ (ステップ 2) ではなく、リクエスト トークン ステップ (ステップ 1) で提供する必要があります。したがって、上記のすべてはそのままで正しいです。

于 2013-08-19T22:13:39.403 に答える