Аутентификация с помощью электронных таблиц в GData API - PullRequest
1 голос
/ 18 января 2011

Я пытаюсь редактировать электронную таблицу gdocs, используя GData API. У меня есть следующий код:

    _service = new DocsService("attask-gdocsintegration-1.0");
    _service.setUserCredentials(username, password);

    String feedUrl = "https://docs.google.com/feeds/default/private/full";

    SpreadsheetQuery query = new SpreadsheetQuery(new URL(feedUrl));
    query.setMaxResults(1);
    query.setTitleExact(true);
    query.setTitleQuery(title);
    SpreadsheetFeed feed = _service.getFeed(query, SpreadsheetFeed.class);

    if(feed.getEntries().size() != 1) {
        throw new FileNotFoundException("'"+title+"' not a spreadsheet");
    }
    _entry = feed.getEntries().get(0);
    List<WorksheetEntry> worksheets = _entry.getWorksheets();

однако в последней строке этого блока выдается исключение:

Exception in thread "main" com.google.gdata.util.AuthenticationException: Unauthorized
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>

    at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:600)
    ...

Имя пользователя / пароль верны, и похоже, что они прекрасно аутентифицируются при запросе моих документов, но как только я пытаюсь получить лист, происходит сбой. Есть идеи о том, что мне здесь не хватает?

1 Ответ

1 голос
/ 18 января 2011

после нескольких проб и ошибок я обнаружил, что URL фида неверен.Вот что мне пришлось изменить:

изменилось:

String feedUrl = "https://docs.google.com/feeds/default/private/full";

на:

String feedUrl = "https://spreadsheets.google.com/feeds/spreadsheets/private/full";

и все заработало.

...