0

MapMyFitness API に問題があります。MapMyFitness は OAuth 1.0 を使用します

3.1/oauth/request_token を呼び出して、一時的な認証トークンと一時的なシークレット トークンの組み合わせを正常に取得できました。

その後、ユーザーを認証ページに正常に誘導し、認証ベリファイアを使用してリダイレクト コールバックを取得できます。

その後、残念ながら、3.1/oauth/access_token を呼び出そうとするとエラーが発生します。(HTTP エラー 401)

まず、MMF のドキュメント ( http://api.mapmyfitness.com/3.1/oauth/access_token?doc ) には次のように記載されています。ただし、ドキュメントの入力引数のリストには、oauth_verifier についての言及が含まれていません。リダイレクト コールバックで受け取った oauth_verifier を引数として access_token 呼び出しに渡す必要がありますか?

第二に、署名を正しく作成していない可能性があります。3.1/oauth/request_token 呼び出しの場合、署名を生成するためのキーは「XXX&」です。ここで、XXX は MapMyFitness によってアプリに割り当てられたコンシューマ シークレット キーです。これはうまくいきます。3.1/oauth/access_token 呼び出しでは、「XXX&YYY」を署名キーとして使用しています。ここで、XXX は MapMyFitness によってアプリに割り当てられたコンシューマー シークレット キーであり、YYY は 3.1/oauth 中にサーバーから返された一時的なシークレット トークンです。 /request_token 呼び出し。あれは正しいですか?

提案をいただければ幸いです。

4

1 に答える 1

0

OK、私はそれを働かせました。まず、パラメーターの一部として oauth_verifier DOES を含める必要があります。何らかの理由で、Map My Fitness はそれを必須パラメーターのリストに含めませんが、そこにある必要があります。次に、非常に重要なことですが、OAuth 1.0 のドキュメントによると、署名を作成するときはすべてのパラメーターをアルファベット順に並べる必要があります。そうしないと、署名の不一致が発生し、HTTP 401 エラーが発生します。パラメータをアルファベット順に並べ替えると、一時的な MapMyFitness 資格情報を永続的な資格情報に交換できました。

于 2013-08-27T18:17:35.143 に答える