2013-06-04 29 views
5

Ứng dụng của tôi chứa danh sách các ca làm việc. Tôi muốn lưu danh sách các thay đổi vào tệp bảng tính trên tài khoản google drive. Vì API bảng tính Google đang sử dụng API Google Doc không dùng nữa để tạo tệp bảng tính; làm cách nào để tạo và chỉnh sửa tệp đó trên ổ google, tất cả từ mã java bên trong ứng dụng Android của tôi và không có bất kỳ tương tác người dùng nào (trừ ủy quyền), chỉ sử dụng API Google Drive?Làm cách nào để tạo và chỉnh sửa tệp bảng tính trên ổ google bằng API Google Drive từ ứng dụng Android của tôi?

Trả lời

4

Bạn nên xem Google Spreadsheet API 3.0. Nó hỗ trợ JAVA mà bạn có thể sử dụng trong ứng dụng Android của bạn.

+4

Dường như để tạo bảng tính, bạn cần phải sử dụng google doc apis, nhưng ** "Phiên bản 3 của API danh sách tài liệu của Google đã được chính thức ngừng sử dụng kể từ ngày 14 tháng 9 năm 2012" **. Trên trang API Danh sách Google Documents, họ khuyên bạn nên sử dụng API Google Drive nhưng dường như tôi không thể tìm cách sử dụng API đó để tạo và chỉnh sửa tệp bảng tính. –

4

API Google Documents không được dùng nữa, nhưng API trang tính (hiện tại: v3) vẫn hoạt động.

Để thực hiện chức năng tương đương của kết hợp Trang tính + Tài liệu gốc, bạn nên sử dụng API Drive để thực hiện thao tác tệp chẳng hạn như tìm kiếm/di chuyển/tạo/xóa.

Ngoài phạm vi cho API Drive, thêm phạm vi sau đây để được cấp chiếu:

https://spreadsheets.google.com/feeds 

Nếu bạn đang sử dụng GData client libraryGoogle OAuth client library, nó sẽ là khá dễ dàng để thiết lập cả hai dịch vụ sau 2,0 uỷ quyền OAuth . Dưới đây là một ví dụ:

// Acquire clientId, clientSecret and refreshToken 
... 

// Create shared credential 
GoogleCredential credential = new GoogleCredential.Builder() 
      .setClientSecrets(clientId, clientSecret) 
      .setJsonFactory(jsonFactory) 
      .setTransport(transport) 
      .build().setRefreshToken(refreshToken); 

// Setup both servives 
Drive driveService = new Drive.Builder(transport, jsonFactory, credential).build(); 
SpreadsheetService sheetService = new SpreadsheetService(...); 
sheetService.setOAuth2Credentials(credential); // only provided in newer releases 
sheetService.useSsl(); 

ID tài nguyên trong cả hai API là giống hệt nhau, vì vậy bạn có thể tìm kiếm id của một số tập tin với các phương pháp API Drive và bảng truy cập vào các tập tin với các phương pháp Sheets API. Dưới đây là một ví dụ:

File file = driveService.files().get().setFields(...).execute(); 
String feedUrl = "https://spreadsheets.google.com/feeds/worksheets/" 
      + file.getId + "/private/full"; 
WorksheetFeed feed = sheetService.getFeed(feedUrl, WorksheetFeed.class); 

Nếu bạn nhận được một lỗi của "Mã không hợp lệ - AuthSub thẻ có phạm vi sai", phụ thêm chuỗi truy vấn của accessToken đến feedUrl có thể giúp đỡ.

feedUrl = feedUrl + "?access_token=" + credential.getAccessToken(); 

FYI, danh sách Q & Như tôi đã giới thiệu khi viết câu trả lời này.

  • "Có thể sử dụng API của Google Drive với API Bảng tính"
  • "Get bảng tính tạo ra với ổ SDK"
  • "Google Drive SDK alternateLink Với OAuth2"
Các vấn đề liên quan