これは可能ですが、推奨されません。
警告: これにより、誰でもあなたのドロップボックス アカウント (または許可するアクセスに応じてアプリ フォルダー) への読み取り/書き込みアクセスが許可されます。
スタートガイドで推奨されているようにアプリを設定していると思います:
https://www.dropbox.com/developers/core/authentication#ios
仕組みは次のとおりです。Dropbox にログインすると、アプリにリダイレクトされます。Dropbox は、URL スキームを登録し、次の AppDelegate メソッドを利用することでこれを行います。
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;
Dropbox は、oauth_token
、oauth_token_secret
、およびuid
をurl
パラメーターで渡します。次に、次のメソッドを使用して API 呼び出しを行うときに後で使用できるように、これらを保存しますDBSession
。
- (BOOL)handleOpenURL:(NSURL *)url;
App Key
したがって、同じとを使用するアプリを作成できますSecret
。
テストアプリ
DBSession* dbSession =
[[[DBSession alloc]
initWithAppKey:@"APP_KEY"
appSecret:@"APP_SECRET"
root:ACCESS_TYPE] // either kDBRootAppFolder or kDBRootDropbox
autorelease];
[DBSession setSharedSession:dbSession];
承認をリクエストする
if (![[DBSession sharedSession] isLinked]) {
[[DBSession sharedSession] linkFromController:yourRootController];
}
そして、AppDelegate メソッドを追加して承認を受け取りますurl
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
if ([[DBSession sharedSession] handleOpenURL:url]) {
if ([[DBSession sharedSession] isLinked]) {
NSLog(@"App linked successfully! url: %@", url);
// At this point you can start making API calls
}
return YES;
}
// Add whatever other url handling code your app requires here
return NO;
}
url
これにより、認証トークンを使用してログに記録されます。それをコピーしてから、本番アプリで (DBSession を構成した直後に) これを実行します (文字列を以前にコピーしたものに置き換えます)。
プロダクションアプリ
DBSession* dbSession =
[[[DBSession alloc]
initWithAppKey:@"APP_KEY"
appSecret:@"APP_SECRET"
root:ACCESS_TYPE] // either kDBRootAppFolder or kDBRootDropbox
autorelease];
[DBSession setSharedSession:dbSession];
if (![[DBSession sharedSession] isLinked]) {
[[DBSession sharedSession] handleOpenURL:[NSURL URLWithString:@"db-APP_KEY://1/connect?oauth_token=********&oauth_token_secret=********&uid=********"]];
}
DBSession
これにより、 がDropbox アカウントに自動的にリンクされます。
承認する直前にこれを呼び出すことで、これをテストできます。
[[DBSession sharedSession] unlinkAll];
別の警告
アプリをダウンロードし、認証トークンを抽出してから、必要なすべての読み取り/書き込み API 呼び出しを開始できます。これは完全に安全ではなく、教育的な演習としてのみ考慮されるべきです。