3

iOS アプリケーションに Dropbox サポートを追加しています。公式の Dropbox API と こちらのオンラインチュートリアルを使用して、 Dropbox を認証する必要があるところまで来ました。以下のコードは、ボタンが押されたときに Authenticate に与えられるものです。

//MainViewController.m
....
@implementation CryptoMainViewController
.....
#pragma mark - Dropbox
- (void)didPressLink {
    if (![[DBSession sharedSession] isLinked]) {
        [[DBSession sharedSession] link];
    }
}

しかし、どのようにコードを変更しても、どこに配置しても、どのボタンにリンクしても、何も起こりません。ブレークポイントを使用すると、メソッドが実際にトリガーされることがわかりました。IBAction にも入れましたが、これは同じ結果になります。私は何を間違っていますか?アプリでエンドユーザーを認証するにはどうすればよいですか?

そして、認証されたら、NSString をユーザーの Dropbox に保存するにはどうすればよいですか?

これが完全に間違っている場合、これを適切に行う方法に関するリソースをどこで見つけることができますか?

チュートリアル全体、すべてのドキュメント、API などはこちらから入手できます。

4

3 に答える 3

5

私も同じ問題を抱えていました。その理由は、共有Dropboxセッションを設定していなかったためです。

DBSession* dbSession = [[[DBSession alloc] initWithAppKey: @"your_app_key"
                                           appSecret: @"your_app_secret"
                                           root: kDBRootAppFolder] autorelease];
[DBSession setSharedSession: dbSession];

それが呼ばれると、リンクは正常に機能しました。

于 2012-10-15T14:17:06.277 に答える
1

この答えは遅いかもしれませんが、あなたは以前にあなたのアプリをすでにリンクしていて、もう一度リンクしたいと思っていると思います。リンクのプロセスを再度実行する唯一の方法は、次のコードを実行する場合です。[[DBSession sharedSession] unlinkAll]; viewDidLoadに配置できます。次にdidPressLinkを呼び出すと、アプリはドロップボックスアプリ(利用可能な場合)、サファリ、またはアプリ内ウィンドウを開き、ドロップボックスへのアクセス許可を求めます。これが起こらない場合、問題はどこかにあります。お役に立てれば

于 2012-08-01T04:46:04.927 に答える
0

あなたの見解は?を実装しています<DBLoginControllerDelegate>か?

その場合は、Dropboxを次のようにリンクします。

DBLoginController* controller = [[DBLoginController new] autorelease];
        controller.delegate = self;
        [controller presentFromController:self];
于 2012-03-31T15:25:20.130 に答える