【swift】DropBoxAPIを使用して一覧を取得
概要
DropBoxAPIを使用して、一覧を取得します。
認証画面を表示
- DropBoxの認証画面を表示して認証します。
@IBAction private func moveSignIn(_ sender: Any) { // 認証されているかを判定します。 guard DropboxClientsManager.authorizedClient != nil else { // 認証されていない場合、DropBoxの認証をします。 signInDropbox() return } } private func signInDropbox() { let scopeRequest = ScopeRequest(scopeType: .user, // 表示する権限です。DropBoxDeveloperConsoleでチェックしたものを指定します。 scopes: ["files.metadata.write", "files.content.write"], includeGrantedScopes: false) DropboxClientsManager.authorizeFromControllerV2( UIApplication.shared, controller: self, loadingStatusDelegate: nil, openURL: { (url: URL) -> Void in UIApplication.shared.open(url) }, scopeRequest: scopeRequest ) }
- 実行すると認証画面が表示されます。
- 進めていくとDropBoxを使用するかどうかの画面が表示されます。
- Allowを押下すると呼び出し画面へ戻ります。
一覧の取得
private func getList() { // 認証があるか確認してDropboxClientを取得します。 guard let dropboxClient = DropboxClientsManager.authorizedClient else { return } // 指定したパスのファイル情報を取得します。 // この場合は一番上を指定してます。 let listFolders = dropboxClient.files.listFolder(path: "") listFolders.response { response, error in guard let result = response else { return } for entry in result.entries { // 格納されているFile情報が取れます。 if let file = entry as? SwiftyDropbox.Files.FileMetadata { file.name // ファイル名 file.size // ファイルサイズ file.pathDisplay // ファイルパス // その他ファイル情報が取れます。 } else if let folder = entry as? SwiftyDropbox.Files.FolderMetadata { folder.name // フォルダ名 folder.pathDisplay // フォルダパス // その他フォルダ情報が取れます。 } } } }