3

不思議な問題があります。私のアプリはDropboxにリンクし、ファイルをアップ/ダウンロードできる必要があります。「Dropboxに接続」というボタンがあります。このボタンを押すと、アプリはDropboxにリンクするはずです。

- (IBAction)btnLoginClick:(id)sender {
    [[DBSession sharedSession] linkFromController:self];
}

このアクションが呼び出されると、すべてが機能します。Dropbox.appが読み込まれ、権限などを要求します。

関数を次のように変更すると、次のようになります。

- (IBAction)btnLoginClick:(id)sender {
    [[appDelegate getDropboxService] link:self];
}

次に、Dropbox.appが開かれ、許可を求められますが、アプリはDropboxにリンクされていません。

次のエラーが発生します:

[WARNING] DropboxSDK: error making request to /1/metadata/dropbox - Token is invalid. 

appDelegateの関数はDropboxオブジェクトのみを返します。nilの場合は作成されます。Link関数は、最初のコードブロックと同じ行を呼び出すだけです。

[[DBSession sharedSession] linkFromController:self];

なぜこれが起こるのか、何が間違っているのかわかりません。

あいさつアレックス

4

2 に答える 2

5

私は同じ問題を抱えていました。私の場合、restClientDropbox にリンクする前にアプリのインスタンスを作成しました。これが役立つかもしれません

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    if ([[DBSession sharedSession] handleOpenURL:url]) {
        if ([[DBSession sharedSession] isLinked]) {
            NSLog(@"App linked successfully!");
            //now you can call restClient = [[DBRestClient alloc] initWithSession:[DBSession sharedSession]];
        }
    }
}
于 2012-12-04T12:14:30.423 に答える
0

私の問題は、DropBox ユーザーが公式の DropBox アプリをインストールしている場合、組み込みのシートを使用する代わりに、アプリが認証をそのアプリにパントすることでした。アプリがキーでなくなったときに終了するように設定されている場合、アプリが([DBSession sharedSession])再びフォーカスを受け取る (つまり、再起動する) と、共有セッションは存在しなくなります。これにより(私の場合)、再リンク、失敗、再リンクの試行などの無限ループが発生しました。

私にとっての修正は、- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url通話で共有セッションを再作成することでした。

于 2013-01-20T01:20:12.393 に答える