如何将Android应用与Google表格电子表格相关联?

use*_*435 11 android google-api google-sheets google-docs-api google-sheets-api

我正在尝试使用需要使用Google电子表格API的Android应用.我是新手,所以我从api的第3版开始:https://developers.google.com/google-apps/spreadsheets/

我按照所有步骤,将所有jar文件下载到lib我的项目文件夹中的子文件夹,然后像往常一样添加到Eclipse中的构建路径.因此虽然没有Java示例来执行Oauth 2.0,但我只是试图声明:

SpreadsheetService service = new SpreadsheetService("v1");
Run Code Online (Sandbox Code Playgroud)

但是当我模仿这个简单的行时,它给了我一个错误:

java.lang.NoClassDefFoundError: com.google.gdata.client.spreadsheet.SpreadsheetService
Run Code Online (Sandbox Code Playgroud)

我正在使用文档中包含的所有jar,我有导入:

import com.google.gdata.client.spreadsheet.SpreadsheetService;
Run Code Online (Sandbox Code Playgroud)

但我完全迷失了.我不知道还有什么可以开始,连接到Google API并使用电子表格.

Sco*_*ion 5

没有OAuth 2.0的示例代码.但是为了安全起见,它建议执行OAuth.您还必须添加以下权限.

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCOUNT_MANAGER"/>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Run Code Online (Sandbox Code Playgroud)

示例代码: -

try {
    SpreadsheetEntry spreadsheet;
    service = new SpreadsheetService("Spreadsheet");
    service.setProtocolVersion(SpreadsheetService.Versions.V3);
    service.setUserCredentials("username", "password");//permission required to add in Manifest
    URL metafeedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full");
    feed = service.getFeed(metafeedUrl, SpreadsheetFeed.class);

    List<SpreadsheetEntry> spreadsheets = feed.getEntries();
    if (spreadsheets.size() > 0) {
        spreadsheet = spreadsheets.get(i);//Get your Spreadsheet
   }
} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)


use*_*435 4

非常感谢蝎子!有用!!我已经尝试这个太久了。好的,这是我的解决方案:我开始了一个新项目并包含这些罐子:

gdata-client-1.0
gdata-client-meta-1.0
gdata-core-1.0
gdata-spreadsheet-3.0
gdata-spreadsheet-meta-3.0
guava-13.0.1  
Run Code Online (Sandbox Code Playgroud)

和我的代码:

    SpreadsheetService spreadsheet= new SpreadsheetService("v1");
    spreadsheet.setProtocolVersion(SpreadsheetService.Versions.V3);

    try {
        spreadsheet.setUserCredentials("username", "password");
        URL metafeedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full");
        SpreadsheetFeed feed = spreadsheet.getFeed(metafeedUrl, SpreadsheetFeed.class);

        List<SpreadsheetEntry> spreadsheets = feed.getEntries();
        for (SpreadsheetEntry service : spreadsheets) {             
            System.out.println(service.getTitle().getPlainText());
       }
    } catch (AuthenticationException e) {           
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

当然,这是在不同的线程中执行的,而不是在主线程中。OAuth 2.0 没有 java 文档,但我会尝试,如果我做不到,我会在这里询问。再次非常感谢你,我希望当我工作足够的时候能帮助你。:)