2013-06-20 43 views
5

Thực ra tôi đã tích hợp google-drive-sdk với ứng dụng ios của mình. Tôi có thể tải lên tệp được chỉ định trên ổ google thông qua google-drive-sdk for iOS. Ngoài ra, tôi muốn cung cấp chức năng chọn thư mục từ thư mục có sẵn mà người dùng muốn tải lên tệp đó trên Google Drive.Liệt kê tất cả các thư mục của Google Drive thông qua SDK Google Drive của iOS

Vì vậy, tôi đã tìm cách liệt kê tất cả các tệp của Google Drive nhưng không thể tìm thấy cách liệt kê tất cả các thư mục của Google Drive.

Tôi cũng đã xem toàn bộ số API reference trên trang web Nhà phát triển của Google nhưng không tìm thấy giải pháp nào về nó.

Tôi đã tìm thấy một nơi nào đó sử dụng danh sách thư mục mã bên dưới có thể được thực hiện để thử nó nhưng nó không hoạt động.

GTLQueryDrive *query = [GTLQueryDrive queryForFilesList]; 
query.q = @"mimeType='application/vnd.google-apps.folder' and trashed=false"; 

[self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket, 
                  GTLDriveFileList *files, 
                  NSError *error) { 

    if (error == nil) { 
     NSLog(@"Array of folder: %@", files.items); 
    } else { 
     NSLog(@"An error occurred: %@", error); 
    } 
}]; 

Vậy có giải pháp nào để nhận danh sách thư mục từ Google Drive bằng google-drive-sdk không?

+0

Hey @cultor Bạn có được những giải pháp cho việc này. Nếu bạn nhận được xin vui lòng cho câu trả lời ở đây. Tôi cũng phải đối mặt với cùng một vấn đề. Tôi cần phải liệt kê ra các thư mục. – sunil

Trả lời

1

Giả sử mã này hoạt động, có sự cố trong truy vấn. Nhiều truy vấn nên được kết hợp theo .

query.q = @"mimeType='application/vnd.google-apps.folder' and trashed=false"; 

Để biết thêm ví dụ về truy vấn mẫu, hãy xem Search for Files trong tài liệu chính thức.

Ngoài ra, trong trường hợp mã này không hoạt động, bạn muốn sử dụng Files.list() với truy vấn ở trên. Kiểm tra liên kết và có một mã mẫu cho Object-c bạn có thể muốn sử dụng.

+0

Xin chào, cảm ơn bạn đã phản hồi nhanh. Tôi đã thử bằng cách thêm "và" (@ "mimeType = 'application/vnd.google-apps.folder' và trashed = false"). Nhưng nó vẫn không hoạt động. Và về liên kết này https://developers.google.com/drive/v2/reference/files/list Tôi đã xem qua nó nhưng nó chỉ liệt kê tất cả các tệp không phải thư mục. –

+0

Bạn có quản lý để làm việc này không? –

1

Phạm vi bạn đang sử dụng là gì? đảm bảo bạn đang sử dụng

kGTLAuthScopeDrive = @ "https://www.googleapis.com/auth/drive";

dụ:

NSString *scope = kGTLAuthScopeDrive; 

GTMOAuth2ViewControllerTouch *authViewController = 
[[GTMOAuth2ViewControllerTouch alloc] initWithScope:scope 
              clientID:kClientId 
             clientSecret:kClientSecret 
            keychainItemName:kKeychainItemName 
              delegate:self 
            finishedSelector:finishedSelector]; 

[self presentViewController:authViewController animated:YES completion:nil]; 
+1

Tôi đồng ý. Bạn có thể đang sử dụng phạm vi mặc định kGTLAuthScopeDriveFile sẽ chỉ hiển thị các tệp do ứng dụng của bạn tạo. https://developers.google.com/drive/web/scopes – Ted

0

Sử dụng phạm vi thích hợp.

phạm vi drive.file giới hạn chỉ cho phép ứng dụng truy cập vào các tệp được tạo hoặc người dùng đã mở với nó.

phạm vi toàn bộ ổ đĩa cho phép ứng dụng quản lý tất cả các tệp trên Drive của người dùng.

Bạn nên yêu cầu phạm vi giới hạn khi có thể. Để biết thêm thông tin chi tiết về tất cả các phạm vi có sẵn, kiểm tra tài liệu Google Drive SDK:

https://developers.google.com/drive/scopes

Các vấn đề liên quan