【发布时间】:2015-07-20 02:14:09
【问题描述】:
我正在尝试使用 Java 进行编程以连接到 Google 电子表格以进行数据检索或修改单元格中的数据。
我的 Google 电子表格链接是 https://docs.google.com/spreadsheets/d/1UXoGD2gowxZ2TY3gooI9y7rwWTPBOA0dnkeNYwUqQRA
我查看了Sheets API,它需要像
这样的链接https://spreadsheets.google.com/feeds/worksheets/key/private/full
我尝试了不同形式的链接,例如:
https://spreadsheets.google.com/feeds/worksheets/1UXoGD2gowxZ2TY3gooI9y7rwWTPBOA0dnkeNYwUqQRA/private/fullhttps://spreadsheets.google.com/feeds/worksheets/1UXoGD2gowxZ2TY3gooI9y7rwWTPBOA0dnkeNYwUqQRA/private/full
他们分别给了我不同类型的错误:
com.google.gdata.util.ParseException: Unrecognized content type:application/binarycom.google.gdata.util.RedirectRequiredException: Moved Temporarily
我不知道如何使用 Java 连接到 Googl 电子表格。如果您有这方面的经验,请帮助我。
import com.google.gdata.client.authn.oauth.*;
import com.google.gdata.client.spreadsheet.*;
import com.google.gdata.data.*;
import com.google.gdata.data.batch.*;
import com.google.gdata.data.spreadsheet.*;
import com.google.gdata.util.*;
import org.testng.annotations.Test;
import java.io.IOException;
import java.net.*;
import java.util.*;
public class TestGoogleSheetsAPI {
@Test
public void testConnectToSpreadSheet() throws ServiceException, IOException {
SpreadsheetService service = new SpreadsheetService("google-spreadsheet");
URL SPREADSHEET_FEED_URL = new URL("https://spreadsheets.google.com/feeds/worksheets/1UXoGD2gowxZ2TY3gooI9y7rwWTPBOA0dnkeNYwUqQRA/public/full");
SpreadsheetFeed feed = service.getFeed(SPREADSHEET_FEED_URL, SpreadsheetFeed.class);
List<SpreadsheetEntry> spreadsheets = feed.getEntries();
if (spreadsheets.size() == 0) {
// TODO: There were no spreadsheets, act accordingly.
}
SpreadsheetEntry spreadsheet = spreadsheets.get(0);
System.out.println(spreadsheet.getTitle().getPlainText());
}
}
我没有使用service.setUserCredentials("xxx@gmail", "password"),因为我会有另一个错误,即com.google.gdata.util.AuthenticationException: Error authenticating (check service name)
【问题讨论】:
-
您是否设置了 Java 客户端库?还是您使用的是原始 REST HTTPS 请求?
-
我使用maven导入gdata库。我真的应该下载 JAR 文件吗?
-
我不知道。我只是想确保你已经完成了基础知识。请显示发出请求的 Java 代码。
-
添加了上面的代码
-
我认为您需要使用 oauth 进行身份验证。网址
https://spreadsheets.google.com/feeds属于oauth 信息的范围。在这里查看更多developers.google.com/google-apps/spreadsheets
标签: java google-sheets google-spreadsheet-api