0

私は Mac アプリケーションの作成への最初の進出を開始しており、ビジネスの最初の注文は、Soundcloud で OAuth を使用してアプリを認証することです。承認リクエストの送信は簡単ですが、Soundcloud からのリダイレクトをリッスンする方法に行き詰まっています。

info.plist で URL スキームを設定し、着信要求をリッスンするようにアプリケーションを設定しましたが、登録しようとしても応答がありません。URL を safari でテストしたところ、問題なく動作しました。

アプリのデリゲートのコード スニペットを次に示します。

- (void) applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:self
                       andSelector:@selector(handleGetURLEvent:withReplyEvent:)
                     forEventClass:kInternetEventClass andEventID:kAEGetURL];

[[NXOAuth2AccountStore sharedStore] setClientID:@"myClientID" 
                                         secret:@"superSecretSecret"
                               authorizationURL:[NSURL URLWithString:@"https://soundcloud.com/connect"]
                                       tokenURL:[NSURL URLWithString:@"https://api.soundcloud.com/oauth2/token"]
                                    redirectURL:[NSURL URLWithString:@"myApp://connect"]
                                 forAccountType:@"iHopeThisWorks"];

}

- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
NSURL *url = [NSURL URLWithString:[[event paramDescriptorForKeyword:keyDirectObject] stringValue]];
}

myApp://connect は私のローカル マシンにしか存在しないため、soundcloud は myApp://connect を見つける場所を知らないと思います。では、http 要求を処理する Web サービスのような仲介を作成する必要がありますか? もしそうなら、仲介者はどのようにして私のマシンに戻るインターフェースを知っているのでしょうか? これらが基本的な質問または見当違いの質問である場合は申し訳ありませんが、前述のように、これはこのようなことに対する私の最初のショットであり、私のgoogle-fuは解決策を見つけることができませんでした.

4

2 に答える 2

3

通常、OAuth サービス プロバイダーはResource Owner Password Credentials Grantデスクトップ用に実装する必要がありますが、あなたの場合は実装しませんでした。

しかし、彼らはすでに OAuth2Client のラッパーを作成しています - https://github.com/soundcloud/CocoaSoundCloudAPIで探してください。ドキュメントはhttp://developers.soundcloud.com/docs#authenticationにあります。

あなたの質問に答えると、URI はmyApp://connect、アプリケーションが文字通り呼び出された場合ですmyApphttp://vimeo.com/28715664の vimeo で開発者のビデオをご覧ください。

最高のドキュメントを読んでください。

于 2012-06-01T13:02:14.393 に答える
0

そのためにを使用することができますNSWebView。実際には「ビュー」は必要ないので、これはあまりエレガントに聞こえないことはわかっていますが、私が知る限り、これがリダイレクトを取得するための最も簡単なソリューションです。

于 2012-06-01T12:15:53.607 に答える