web-dev-qa-db-ja.com

Android-GoogleスプレッドシートAPI

Android Googleスプレッドシートを管理するアプリを開発するために使用する必要があるライブラリを取得できません。ユーザースプレッドシートからの接続、コピー、編集、読み取りが必要ですが、今日はどれが理解できませんか方法です。

Google Drive Api : https://developers.google.com/drive/
Google Spreadsheet Api: https://developers.google.com/google-apps/spreadsheets/
Google APi Java client: http://code.google.com/p/google-api-Java-client/

どちらが正しいですか?

21
Lorenzo Sciuto

最後に使用したライブラリは次のとおりです。

gdata-client-1.0.jar
gdata-client-meta-1.0.jar
gdata-core-1.0.jar
gdata-spreadsheet-3.0.jar
gdata-spreadsheet-meta-3.0.jar
google-api-client-1.12.0-beta.jar
google-api-client-Android-1.12.0-beta.jar
google-http-client-1.12.0-beta.jar
google-http-client-Android-1.12.0-beta.jar
google-oauth-client-1.12.0-beta.jar
gson-2.1.jar
guava-13.0.1.jar
jackson-core-asl-1.9.9.jar
jsr305-1.3.9.jar
protobuf-Java-2.4.1.jar

Eugenio(ありがとうございます!!!)で提案されているように、スプレッドシートapiのライブラリをJava-client-apiと「混合」し、認証後、セルを取得するために以下を使用しました

SpreadsheetEntry spreadsheet = null;
URL metafeedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full");

SpreadsheetFeed spreadsheetFeed = service.getFeed(metafeedUrl, SpreadsheetFeed.class);
List<SpreadsheetEntry> spreadsheets = spreadsheetFeed.getEntries();
for (SpreadsheetEntry entry : spreadsheets) {
   if (entry.getTitle().getPlainText().equals(spreadsheetTitle)) {
      spreadsheet = entry;
   }
}

if (spreadsheet == null) {
    throw new FileNotFoundException("Cannot find the required spreadsheet '" + spreadsheetTitle + "'");
}

WorksheetEntry worksheet = null;
WorksheetFeed worksheetFeed = service.getFeed(spreadsheet.getWorksheetFeedUrl(), WorksheetFeed.class);
List<WorksheetEntry> worksheets = worksheetFeed.getEntries();
    for (WorksheetEntry entry : worksheets) {
    if (entry.getTitle().getPlainText().equals(worksheetTitle)) {
         worksheet = entry;
    }
}

if (worksheet == null) {
    throw new FileNotFoundException("Cannot find the required worksheet '" + worksheetTitle + "'");
}

URL listFeedUrl = worksheet.getListFeedUrl();
ListFeed listFeed = service.getFeed(listFeedUrl, ListFeed.class);

現時点では「最悪の」認証システムを使用しており、これをOAuth2で有効にする必要がありますが、現時点ではClientLoginは次のように行われます。

SpreadsheetService service = new SpreadsheetService("v1");
service.setProtocolVersion(SpreadsheetService.Versions.V3);
service.setUserCredentials(email, password);
9
Lorenzo Sciuto

短い答え:3つすべて

長い答え:

新しい Drive API を使用する必要があります。これにより、Googleドライブでファイルをアップロード、ダウンロード、変更できます。これにより、スプレッドシートの操作が制限されます。基本的に、ダウンロードまたはアップロードします。

Google Spreadsheet Api を使用すると、行や列でデータにアクセスするなど、スプレッドシートで複雑な操作を実行できます。

Google API Java client はすべてのGoogle APIの依存関係であり、OAuthやサービスアカウントなどのさまざまな方法で接続を承認するために使用されます。

23
Eugenio Cuevas