2

last.fm API 認証

URL に接続し、ユーザーを認証してから続行する必要があります。それ、どうやったら出来るの?URLを開く部分はあるのですが、待ち方がわかりません。

            // 3. Request authorization from the user
            String authURL = "http://www.last.fm/api/auth/?api_key=" + key + "&token=" + token;
            java.awt.Desktop browser = java.awt.Desktop.getDesktop();
            java.net.URI uri = new java.net.URI(authURL);
            browser.browse(uri);

Web API を使用するのは初めてです。Google と SO で検索してみましたが、探しているものが正確に見つかりませんでした。

4

1 に答える 1

1

API の紹介としてこれを選んで申し訳ありません。ドキュメントの 5 秒で、ドキュメントから、質問がコードの設計上の欠陥であることが明らかになりました。

ユーザーが Last.fm にログインしていない場合、アカウントを使用するためのアプリケーション許可を与えるように求められる前に、ログイン ページにリダイレクトされます。このページには、セクション 1 で提供されているアプリケーションの説明とロゴとともに、アプリケーションの名前が表示されます。ユーザーが自分のアカウントを使用する許可をアプリケーションに付与すると、ブラウザベースのプロセスは終了し、ユーザーに質問が表示されます。ブラウザを閉じてアプリケーションに戻ります。

それは正しい。ユーザーが認証を完了した後、彼らはあなたに ping を送信しません。ユーザーにブラウザを閉じるように指示するだけです。明らかな理由から、これはかなり不十分です: ユーザーがそれを完了したかどうかをどのように知るのでしょうか? 私たちはしません。

ユーザーが戻った後もコードが継続するようにアプリケーションを構成し、おそらく「完了しました」というボタンをユーザーに押してもらいます。後で、API を呼び出す他のコードでユーザーが認証されなかった可能性に対処する必要があります。

はい、壊れています。たとえば、oAuth は、ユーザーがブラウザ ベースの認証手順を完了した後、少なくともトークンを使用してコールバックします。デスクトップ アプリで oAuth を使用する場合、ローカル Web サーバーを起動して、そこでコールバックを受け取ることができます (明らかに、LAN を適切に構成する必要があります)。

于 2013-03-29T00:40:22.960 に答える